yanyi
驱动牛犊
驱动牛犊
  • 注册日期2001-05-28
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2411回复:2

DeviceIoControl()如何与Driver通信

楼主#
更多 发布于:2001-06-14 17:30
MFC中DeviceIoControl()如何与Driver通信能否举个例子供参考?比如说如何访问网卡的Register.期望哪位大师能告诉我。

最新喜欢:

changbanpochangb...
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-06-14 17:45
这个函数 BOOL DeviceIoControl(  HANDLE hDevice,
  DWORD dwIoControlCode,   LPVOID lpInBuffer,
  DWORD nInBufferSize,  LPVOID lpOutBuffer,
  DWORD nOutBufferSize,  LPDWORD lpBytesReturned,
  LPOVERLAPPED lpOverlapped);
 中,hDevice是用CreateFile取得的,dwIoControlCode是由driver定义的,其它参数没什么说的。再给你一个例子:
DeviceIoControl(hVxd, 1, buff, 60, NULL, 0, &dwErrorCode, NULL);
whocool
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-06-15 21:27
(我仅谈一谈vxd的设计,wdm没搞过)

DeviceIoControl 与vxd中的
OnW32DeviceIoControl是对应的关系,
他们之间进行的是参数传递的关系,

例如
DeviceIoControl(hVxd, 0001, buff, bufflong, NULL, 0, &dwErrorCode, NULL);

如需要向设备驱动程序传递当前窗口和定义的消息,可以将窗口句柄和消息的定义写入buff中,bufflong代表传送的数据的总长度.
0001是告诉OnW32DeviceIoControl服务号.

在OnW32DeviceIoControl的0001服务相应部分接受相应的句柄和消息就完成了数据的传递.
游客

返回顶部