全职高手看看屋请帮忙:看看是不是IRP

驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2) - 驱动开发当前位置:& &&&驱动高手来看看奇怪的有关问题,为什么简单的往用户驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)&&网友分享于:&&浏览:69次 return STATUS_SUCCESS;
}NTSTATUS jiChaJiYong(IN PDEVICE_OBJECT fdo,IN PIRP Irp){&
&NTSTATUS &PDEVICE_EXTENSION dx=(PDEVICE_EXTENSION)fdo-&DeviceE &PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); &ULONG MinorFunction = IrpStack-&MinorF &IoSkipCurrentIrpStackLocation(Irp); &// status = IoCallDriver( dx-&NextStackDevice, Irp); &/*if( MinorFunction==IRP_MN_REMOVE_DEVICE) &{//取消设备接口: &
//IoSetDeviceInterfaceState(&dx-&ifSymLinkName, FALSE); &
// RtlFreeUnicodeString(&dx-&ifSymLinkName); &
//调用IoDetachDevice()把fdo从设备栈中脱开:
if (dx-&NextStackDevice) {
IoDetachDevice(dx-&NextStackDevice);
}//删除fdo: &
IoDeleteDevice(fdo);}//返回值: &}*/
// Address = (ULONG)KeServiceDescriptorTable-&ServiceTableBase + 0x7A * 4; return STATUS_SUCCESS;
}NTSTATUS requestControl(IN PDEVICE_OBJECT DeviceObject,& IN PIRP Irp)& {
typedef struct _readWriteMode { void*
} RWMODE,*PRWMODE;
void *inputData,*outDataAddress=NULL; PIO_STACK_LOCATION IrpS&
ULONG ControlC&
ULONG InputLength,OutputL&
NTSTATUS status=STATUS_SUCCESS;&
RWMODE rwmode={0}; &
IrpStack=IoGetCurrentIrpStackLocation(Irp); //获取当前IRP所在的I/O堆栈&
ControlCode=IrpStack-&Parameters.DeviceIoControl.IoControlC //取得控制码&
& InputLength=IrpStack-&Parameters.DeviceIoControl.InputBufferL& //取输入缓冲区大小 & OutputLength=IrpStack-&Parameters.DeviceIoControl.OutputBufferL& #define MY_IOCTL_READ 0X90#define MY_IOCTL_WRITE 0X91#define MY_IOCTL_KETABLE 0x92#define MY_IOCTL_OUTADDRESS 0x93//取输出缓冲区大小switch(ControlCode) {&
& case MY_IOCTL_WRITE:&
& //pIrp-&AssociatedIrp.SystemB &&
& inputData=(char*)Irp-&AssociatedIrp.SystemB &&
& if ( InputLength & sizeof ( rwmode) ) {&
} & dataCopy(&rwmode,inputData,sizeof ( rwmode)); & if( rwmode.length&4096)
{ rwmode.length=4096;
& dataCopy(dataBuffer,rwmode.address,rwmode.length ); & & &
& //向调试器输出字符串 &
& case 0x100: &
outDataAddress=(char*)MmGetSystemAddressForMdlSafe(Irp-&MdlAddress,&
NormalPagePriority); &
if ( outDataAddress==NULL )
} & //dataCopy (outDataAddress,dataBuffer,OutputLength); &
RtlCopyMemory (outDataAddress,zml,9); &
Irp-&IoStatus.Status = STATUS_SUCCESS;
& Irp-&rmation =OutputL
& case MY_IOCTL_OUTADDRESS : & outDataAddress=(char*)MmGetSystemAddressForMdlSafe(Irp-&MdlAddress,&
NormalPagePriority); & dataCopy(outDataAddress,&outDataAddress,OutputLength); & Irp-&IoStatus.Status = STATUS_SUCCESS;
& Irp-&rmation =OutputL & & case MY_IOCTL_KETABLE : &
outDataAddress=(char*)MmGetSystemAddressForMdlSafe(Irp-&MdlAddress,&
NormalPagePriority);
dataCopy(outDataAddress,KeServiceDescriptorTable,OutputLength); Irp-&IoStatus.Status = STATUS_SUCCESS;
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有> 问题详情
IRP 是什么?有何作用?
悬赏:0&答案豆
提问人:匿名网友
发布时间:
IRP 是什么?有何作用?请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
您可能感兴趣的试题
1下列哪些语句关于内存回收的说明是正确的? (&&&&)A、 程序员必项创建一个线程来释放内存B、 内存回收程序负责释放无用内存C、 内存回收程序允讲程序员直接释放内存D、 内存回收程序可以在指定的时间释放内存对象2下面异常是属于Runtime Exception 的是(&&)(多选)A、ArithmeticExceptionB、IllegalArgumentExceptionC、NullPointerExceptionD、BufferUnderflowException
我有更好的答案
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
享三项特权
享三项特权
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)
驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)
发布时间: 17:50:39
编辑:www.fx114.net
本篇文章主要介绍了"驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)",主要涉及到驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)方面的内容,对于驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)感兴趣的同学可以参考一下。
驱动高手来看看奇怪的有关问题,为什么简单的往用户写数据会蓝屏(2)return STATUS_SUCCESS; }NTSTATUS jiChaJiYong(IN PDEVICE_OBJECT fdo,IN PIRP Irp){& &NTSTATUS &PDEVICE_EXTENSION dx=(PDEVICE_EXTENSION)fdo-&DeviceE &PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); &ULONG MinorFunction = IrpStack-&MinorF &IoSkipCurrentIrpStackLocation(Irp); &// status = IoCallDriver( dx-&NextStackDevice, Irp); &/*if( MinorFunction==IRP_MN_REMOVE_DEVICE) &{//取消设备接口: & //IoSetDeviceInterfaceState(&dx-&ifSymLinkName, FALSE); & // RtlFreeUnicodeString(&dx-&ifSymLinkName); & //调用IoDetachDevice()把fdo从设备栈中脱开: if (dx-&NextStackDevice) { IoDetachDevice(dx-&NextStackDevice); }//删除fdo: & IoDeleteDevice(fdo);}//返回值: &}*/ // Address = (ULONG)KeServiceDescriptorTable-&ServiceTableBase + 0x7A * 4; return STATUS_SUCCESS; }NTSTATUS requestControl(IN PDEVICE_OBJECT DeviceObject,& IN PIRP Irp)& { & typedef struct _readWriteMode { void* } RWMODE,*PRWMODE; void *inputData,*outDataAddress=NULL; PIO_STACK_LOCATION IrpS& & ULONG ControlC& & ULONG InputLength,OutputL& & NTSTATUS status=STATUS_SUCCESS;& & RWMODE rwmode={0}; & IrpStack=IoGetCurrentIrpStackLocation(Irp); //获取当前IRP所在的I/O堆栈& & ControlCode=IrpStack-&Parameters.DeviceIoControl.IoControlC //取得控制码& & InputLength=IrpStack-&Parameters.DeviceIoControl.InputBufferL& //取输入缓冲区大小 & OutputLength=IrpStack-&Parameters.DeviceIoControl.OutputBufferL& #define MY_IOCTL_READ 0X90#define MY_IOCTL_WRITE 0X91#define MY_IOCTL_KETABLE 0x92#define MY_IOCTL_OUTADDRESS 0x93//取输出缓冲区大小switch(ControlCode) {& & case MY_IOCTL_WRITE:& & //pIrp-&AssociatedIrp.SystemB && & inputData=(char*)Irp-&AssociatedIrp.SystemB && & if ( InputLength & sizeof ( rwmode) ) {& } & dataCopy(&rwmode,inputData,sizeof ( rwmode)); & if( rwmode.length&4096) { rwmode.length=4096; } & & dataCopy(dataBuffer,rwmode.address,rwmode.length ); & & & & //向调试器输出字符串 & && & case 0x100: & outDataAddress=(char*)MmGetSystemAddressForMdlSafe(Irp-&MdlAddress,& & NormalPagePriority); & if ( outDataAddress==NULL ) { } & //dataCopy (outDataAddress,dataBuffer,OutputLength); & RtlCopyMemory (outDataAddress,zml,9); & Irp-&IoStatus.Status = STATUS_SUCCESS; & Irp-&rmation =OutputL & case MY_IOCTL_OUTADDRESS : & outDataAddress=(char*)MmGetSystemAddressForMdlSafe(Irp-&MdlAddress,& & NormalPagePriority); & dataCopy(outDataAddress,&outDataAddress,OutputLength); & Irp-&IoStatus.Status = STATUS_SUCCESS; & Irp-&rmation =OutputL & & case MY_IOCTL_KETABLE : & outDataAddress=(char*)MmGetSystemAddressForMdlSafe(Irp-&MdlAddress,& & NormalPagePriority); dataCopy(outDataAddress,KeServiceDescriptorTable,OutputLength); Irp-&IoStatus.Status = STATUS_SUCCESS;
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:(阿紫姑娘)
(vadervader)
(打不死36)
(吴彦祖老婆)
(elastico)
第三方登录:上传时间:
ahmat hotan ijrasidiki
nadir nahxa ,
dadam bak aglaydigan bu nahxini
56官方微信
扫一扫发现精彩

我要回帖

更多关于 全职高手迅雷看看 的文章

 

随机推荐