阅读:1434回复:2
怎么样针对某个设备拦截某些操作(读/写/安装等).
首先我想知道怎么样给分,因为上次的帖子我还没给分.
我想知道怎么拦截此DriverObject的IRP_MJ_CREATE、IRP_MJ_SET_INFORMATION、IRP_MJ_DEVICE_CONT; 我写了个Driver,用于屏蔽CDROM,似乎不用用IoGetRelatedDeviceObject吧: //申明 DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = MyDrvDeviceControl; DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION] = MyDrvDeviceControl; //实体 NTSTATUS MyDrvDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { NTSTATUS ntStatus; Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = 0; //#define FILE_DEVICE_CD_ROM 0x00000002 //#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 if(DeviceObject->DeviceType == FILE_DEVICE_CD_ROM || DeviceObject->DeviceType == FILE_DEVICE_CD_ROM_FILE_SYSTEM) { //???????????? Irp->IoStatus.Information = 1; } ntStatus = Irp->IoStatus.Status; IoCompleteRequest( Irp, IO_NO_INCREMENT ); return ntStatus; } 我试了下怎么这样子不可以达到目的.WHY???? |
|
最新喜欢:![]() |
沙发#
发布于:2004-09-03 17:00
首先你需要一些背景知识. 从你提供的代码来看. 你不具备DDK的基本知识. 你先从头啃一下DDK的文档. 比乱来好很多.
|
|
|
板凳#
发布于:2004-09-03 17:42
一般情况下不要去修改原来驱动程序中的处理例程,你可以做过滤驱动,然后在你的过滤驱动中进行拦截即可.
|
|
|