阅读:1429回复:2
FileSpy中添加IRP_MJ_DEVICE_CONTROL无效果
FileSpy中添加DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = SpyDeviceControl;
NTSTATUS SpyDeviceControl( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { NTSTATUS status = STATUS_NOT_IMPLEMENTED; PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp); ULONG ControlCode; PVOID lpInBuf = NULL; if (DeviceObject == gControlDeviceObject) { ControlCode = irpSp->Parameters.DeviceIoControl.IoControlCode; lpInBuf = irpSp->Parameters.DeviceIoControl.Type3InputBuffer; lpInBuf = Irp->AssociatedIrp.SystemBuffer; KdPrint(("Control Code:[%08x]\n", ControlCode)); switch (ControlCode) { case ADD_FILE: Addnode(lpInBuf); break; case ADD_PROC: Addnodeproc(lpInBuf); break; case KAI_FANG: kaifang=TRUE; break; case NO_KAIFANG: kaifang=FALSE; break; } Irp->IoStatus.Status = STATUS_SUCCESS; IoCompleteRequest(Irp, IO_NO_INCREMENT); return Irp->IoStatus.Status; } else { return SpyPassThrough( DeviceObject, Irp ); } } driverentry中初始化了几个变量 别的地方未改动, deviceiocontrol时createfile能成功,但deviceiocontrol后getlasterror错误号87 参数错误 还是用这个win32程序向以前的驱动发deviceiocontrol就可以 大牛们救救我吧 弄了两天了 难道是FileSpy中有秘密吗 |
|
沙发#
发布于:2009-04-23 09:39
补充一下,同样的代码 放到sfilte里面就可以 deviceiocontrol能正常使用
|
|
板凳#
发布于:2009-04-23 22:18
FileSpy has FastIoDeviceControl routine SpyFastIoDeviceControl() which supersedes your MJ_DEVICE_CONTROL.
|
|