如果不在文件系统过滤驱动中进行判断上面那一句话,会有问题么??

解决方案 »

  1.   


    BOOLEAN
    IS_MY_DEVICE_OBJECT(PDEVICE_OBJECT DeviceObject)
    {
        return DeviceObject->DriverObject == g_CDO->DriverObject;
    }去掉没有关系。SFilter只是做了一点点效率优化,如果是自己本驱动的设备,直接IRP Pass
      

  2.   

    #define IS_MY_DEVICE_OBJECT(_devObj) (((_devObj) != NULL) && ((_devObj) != g_pDeviceObject) && ((_devObj)->DriverObject == g_FSDriverObject) && ((_devObj)->DeviceExtension != NULL)) //这条宏是用来检查_devObj是不是自己驱动生成并绑定在文件系统上的设备! 1.不能为空; 2.不是自己的控制设备; 3.该设备的驱动必须是自己的; 4.那个设备扩展是在生成文件系统过滤设备时给的,这就证明确实是文件过滤设备! 我觉得用处还是有的!