lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3141回复:0

METHOD_BUFFERED能用irpStack->Parameters.DeviceIoControl.Type3InputBuffer ?

楼主#
更多 发布于:2008-09-24 21:24
在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的输入啊,请赐教!
游客

返回顶部