阅读:1030回复:5
DS中DeviceIoControl的问题
要完成一个简单的读写功能,用DS编程
请问如何在驱动程序中得到DivceIoControl中的LPInBuffer传递给驱动的值? 而刚开始应用程序是否也可以利用输出缓冲区LPOutBuffer传递给驱动程序参数呢? KIrp有没有相关函数呀? 能否给出个源代码 :) |
|
沙发#
发布于:2003-10-16 20:58
可以找本武安河写的WDM设备驱动开发看看拉:)他用DS做工具的
你问的这些有对应的描述。 |
|
|
板凳#
发布于:2003-10-17 09:47
要完成一个简单的读写功能,用DS编程 用DS实现你说的这些很容易。利用BUFFERED方式,刚开始输入缓冲区的内容是从应用到驱动。当驱动返回的时候,可以把要返回给应用的内容放在输出缓冲区里。 |
|
|
地板#
发布于:2003-10-17 11:04
用DS实现你说的这些很容易。利用BUFFERED方式,刚开始输入缓冲区的内容是从应用到驱动。当驱动返回的时候,可以把要返回给应用的内容放在输出缓冲区里。 [/quote]
大侠所指的输入缓冲区和输出缓冲区是不是都是 KIrp::IoctlBuffer指的区域呀? |
|
地下室#
发布于:2003-10-17 12:18
是的,KIrp::IoctlBuffer获得缓冲区的地址,但是只是对于控制命令定义为METHOD_BUFFERED方式有效
|
|
|
5楼#
发布于:2003-10-17 14:12
用DS实现你说的这些很容易。利用BUFFERED方式,刚开始输入缓冲区的内容是从应用到驱动。当驱动返回的时候,可以把要返回给应用的内容放在输出缓冲区里。 大侠所指的输入缓冲区和输出缓冲区是不是都是 KIrp::IoctlBuffer指的区域呀? [/quote] 是的!对于缓冲方式,输入和输出缓冲区都是用这个来得到缓冲区的地址。 对于直接方式,输入缓冲区是用这个来得到,输出缓冲区是用MDL结构来构造。看看例子! |
|
|