liyunch
驱动小牛
驱动小牛
  • 注册日期2001-06-28
  • 最后登录2014-09-05
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望134点
  • 贡献值0点
  • 好评度94点
  • 原创分0分
  • 专家分0分
阅读:1095回复:1

DeviceIoControl的奇怪问题

楼主#
更多 发布于:2007-01-17 17:28
  我写了个filter,在filter里自建了一个METHOD_BUFFERED ioctl code,然后在程序中用DeviceIoControl读取数据,结果却读不到数据,但返回值是正确的.代码大致是这样的:

DeviceIoControl(h, IOCTL_CODE, inputbuffer, inputbuffersize, 0, 0, &byteOutput, NULL);


驱动里是这样的:

PMYSTRUCT pvii;
pvii = (PMYSTRUCT)Irp->AssociatedIrp.SystemBuffer;
RtlCopyMemory(pvii, src, sizeof(MYSTRUCT));

Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = sizeof(MYSTRUCT);
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS;
liyunch
驱动小牛
驱动小牛
  • 注册日期2001-06-28
  • 最后登录2014-09-05
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望134点
  • 贡献值0点
  • 好评度94点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-17 17:40
已解决.

我的输入缓冲和输出缓冲都是pvii;但调用DeviceIoControl时未指定输出缓冲为pvii.
游客

返回顶部