ibican
驱动牛犊
驱动牛犊
  • 注册日期2009-02-24
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1428回复:2

FileSpy中添加IRP_MJ_DEVICE_CONTROL无效果

楼主#
更多 发布于:2009-04-22 23:04
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中有秘密吗
ibican
驱动牛犊
驱动牛犊
  • 注册日期2009-02-24
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-04-23 09:39
补充一下,同样的代码 放到sfilte里面就可以 deviceiocontrol能正常使用
michaelgz
论坛版主
论坛版主
  • 注册日期2005-01-26
  • 最后登录2012-10-22
  • 粉丝1
  • 关注1
  • 积分150分
  • 威望1524点
  • 贡献值1点
  • 好评度213点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2009-04-23 22:18
FileSpy has FastIoDeviceControl routine SpyFastIoDeviceControl() which supersedes your MJ_DEVICE_CONTROL.
游客

返回顶部