magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1834回复:12

给分!关于DeviceIoControl?

楼主#
更多 发布于:2002-08-16 17:58
BOOL DeviceIoControl(
  HANDLE hDevice,              // handle to device of interest
  DWORD dwIoControlCode,       // control code of operation to perform
  LPVOID lpInBuffer,           // pointer to buffer to supply input data
  DWORD nInBufferSize,         // size, in bytes, of input buffer
  LPVOID lpOutBuffer,          // pointer to buffer to receive output data
  DWORD nOutBufferSize,        // size, in bytes, of output buffer
  LPDWORD lpBytesReturned,     // pointer to variable to receive byte count
  LPOVERLAPPED lpOverlapped    // pointer to structure for asynchronous operation
);

各位大虾:
其中的LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped在驱动的irp中是否有相对应的东东?

正如DWORD nInBufferSize对应于
DeviceIoControl。outputbufferlength!

另:驱动程序中是否可以设置相应的东西,来改变应用层GetLastError时的值,如SetLastError的效果。

 :)

最新喜欢:

wesintjwesint...
[color=red]大头鬼! :P[/color]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-20 21:00
谢谢各位!



 :)
[color=red]大头鬼! :P[/color]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-20 17:00
在Irp中,有相应的东东和这个函数对应。
但和你定义的的Ctrl有比较大的关系。


大虾可否随便举个例子!

按你方便定义的Ctrl来说。

一个例子。

 :o
[color=red]大头鬼! :P[/color]
Axi
Axi
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-20 15:07
在Irp中,有相应的东东和这个函数对应。
但和你定义的的Ctrl有比较大的关系。
举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-20 10:07
谢谢楼上的各位!

另:驱动程序中是否可以设置相应的东西,来改变应用层GetLastError时的值,如SetLastError的效果???

这问题后,马上给分。

给点提示也可啊!

 :)
[color=red]大头鬼! :P[/color]
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-08-19 21:01
一定不
highw
驱动牛犊
驱动牛犊
  • 注册日期2002-01-10
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分372分
  • 威望38点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-19 13:49
一定不
msn : armlinux2000@hotmail.com
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-18 15:07
这个是作为保存返回值保存的地址的啊!系统不一定会把你的这个
lpBytesReturned上面的值传给驱动的啊!


我也知道“不一定会”。。。

所以来问一下这问题,是“一定”还是“一定不”。。。



 :)
[color=red]大头鬼! :P[/color]
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-18 00:56
这个是作为保存返回值保存的地址的啊!系统不一定会把你的这个
lpBytesReturned上面的值传给驱动的啊!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-17 12:02
[quote]BOOL DeviceIoControl(
  HANDLE hDevice,              // handle to device of interest
  DWORD dwIoControlCode,       // control code of operation to perform
  LPVOID lpInBuffer,           // pointer to buffer to supply input data
  DWORD nInBufferSize,         // size, in bytes, of input buffer
  LPVOID lpOutBuffer,          // pointer to buffer to receive output data
  DWORD nOutBufferSize,        // size, in bytes, of output buffer
  LPDWORD lpBytesReturned,     // pointer to variable to receive byte count
  LPOVERLAPPED lpOverlapped    // pointer to structure for asynchronous operation
);

各位大虾:
其中的LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped在驱动的irp中是否有相对应的东东?

正如DWORD nInBufferSize对应于
DeviceIoControl。outputbufferlength!

另:驱动程序中是否可以设置相应的东西,来改变应用层GetLastError时的值,如SetLastError的效果。

 :)


偶只是知道 在ds中,lpBytesReturned 对应的是 KIrp.Information(), DDK 中就不知道是什么了。随便找个DDK的例子看一下就知道了吧 [/quote]

KIrp.Information()是在返回时,“赋值”给 *lpBytesReturned ,且没有所谓的对应。

我问的是与lpBytesReturned 指针本身对应,取得其原始值的那种。

“随便找个DDK的例子看一下就知道了吧” ------ 请明示。

问题较怪,还望各位指点一下!
  
 :(
[color=red]大头鬼! :P[/color]
rifter
论坛版主
论坛版主
  • 注册日期2002-03-20
  • 最后登录2006-02-28
  • 粉丝1
  • 关注0
  • 积分65分
  • 威望8点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-08-17 02:09
BOOL DeviceIoControl(
  HANDLE hDevice,              // handle to device of interest
  DWORD dwIoControlCode,       // control code of operation to perform
  LPVOID lpInBuffer,           // pointer to buffer to supply input data
  DWORD nInBufferSize,         // size, in bytes, of input buffer
  LPVOID lpOutBuffer,          // pointer to buffer to receive output data
  DWORD nOutBufferSize,        // size, in bytes, of output buffer
  LPDWORD lpBytesReturned,     // pointer to variable to receive byte count
  LPOVERLAPPED lpOverlapped    // pointer to structure for asynchronous operation
);

各位大虾:
其中的LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped在驱动的irp中是否有相对应的东东?

正如DWORD nInBufferSize对应于
DeviceIoControl。outputbufferlength!

另:驱动程序中是否可以设置相应的东西,来改变应用层GetLastError时的值,如SetLastError的效果。

 :)


偶只是知道 在ds中,lpBytesReturned 对应的是 KIrp.Information(), DDK 中就不知道是什么了。随便找个DDK的例子看一下就知道了吧
分数 你想要吗?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-16 18:19
有的啊!你可以自己写一个驱动程序和应用程序测试一下就知道了


老鼠,不要如此的打击偶好否。

 :(
[color=red]大头鬼! :P[/color]
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-08-16 18:07
有的啊!你可以自己写一个驱动程序和应用程序测试一下就知道了
游客

返回顶部