阅读:3141回复:0
METHOD_BUFFERED能用irpStack->Parameters.DeviceIoControl.Type3InputBuffer ?
在filspy中,有两个控制需要向驱动输入数据,这两个控制代码是这样定义的:
#define FILESPY_StartLoggingDevice (ULONG) CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x01, METHOD_BUFFERED, FILE_READ_ACCESS ) #define FILESPY_StopLoggingDevice (ULONG) CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x02, METHOD_BUFFERED, FILE_READ_ACCESS ) 而在Dispatch中他是这样调用的IoControl的 status = SpyCommonDeviceIoControl( irpStack->Parameters.DeviceIoControl.Type3InputBuffer, irpStack->Parameters.DeviceIoControl.InputBufferLength, Irp->UserBuffer, irpStack->Parameters.DeviceIoControl.OutputBufferLength, irpStack->Parameters.DeviceIoControl.IoControlCode, &Irp->IoStatus, irpStack->DeviceObject ); 所以我就有疑问:METHOD_BUFFERED的输入、输出不是都应该用irp->AssociatedIrp.SystemBuffer 吗?而irpStack->Parameters.DeviceIoControl.Type3InputBuffer是METHOD_NEITHER的输入啊,请赐教! |
|