Apollo5
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-01-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1193回复:2

有关驱动程序和应用程序之间的通讯问题。

楼主#
更多 发布于:2003-12-30 11:01
为什么这么简单的一个试验就是不能得到预期的效果呢?
以下是驱动程序:
NTSTATUS ISACanDevice::ISACAN_IOCTL_ISALinearAddress_Handler(KIrp I)
{
NTSTATUS status = STATUS_SUCCESS;
           I.Information() = 0;
*(ULONG*)I.IoctlBuffer()=0x800d0000;
return status;
}
以下是应用程序:
if (!DeviceIoControl(hDevice,
ISACAN_IOCTL_ISALinearAddress,
NULL,
0,
&bufOutput,
sizeof(ULONG),
&nOutput,
NULL)
  )
{}
printf(\"Success\\n\");
printf(\"The linearAddress is:0x%x\\n\",bufOutput);

}
其中,编译和运行程序程序都没有问题,可是输出的结果却不是所希望的800d0000。输出结果是:\"The linearAddress is:0x1\"。不知道哪位高手能够指点一下。多谢!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-12-30 11:33
I.Information() = sizeof(ULONG);
Apollo5
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-01-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-30 13:57
多谢! :)
游客

返回顶部