阅读:1662回复:1
wdm驱动开发中遇到的一个问题(急)
在上层应用程序中调用
DeviceIoControl(m_hDevice,IoCtl,inputbuffer,inputbuffersize outputbuffer,outputbuffersize,outcount,..) 在驱动程序中的DeviceControl()函数中调用 PUCHAR MemAddr = (PUCHAR)I.IoctlBuffer(); MemAddr指向的缓冲区是对应inputbuffer还是outputbuffer, 也就是如果我向MemAddr指向的缓冲区写数据,结果会送到 inputbuffer 还是outputbuffer? 谢谢! |
|
最新喜欢:hapi |
沙发#
发布于:2001-07-24 11:51
是这样的,如果你的IOCTL定义为METHOD_BUFFERED方法,那么
你的inbuffer和outbuffer被映射到同一个系统buffer。 当你从这个systembuffer读数据时,实际读的是用户inbuffer中的数据; 当你往systembuffer 写数据时,实际在结束IRP时,数据会导入用户outbuffer中。 如在你的程序中 MemAddr= = (PREC_SIG_INT) pIrp->AssociatedIrp.SystemBuffer; 然后往MemAddr写数据,结果会送到outbuffer区。 不知这样你清楚了没有? |
|
|