阅读:1031回复:7
请问一应用程序与驱动程序通信的问题
应用程序和驱动程序的通信可以使用ReadFile和WriteFile来完成,不过还有两个函数:ReadFileEx和WriteFileEx,这两个函数都有一个完成函数的参数,不知是不是指当驱动程序完成I/O后会调用这个完成函数?如果是,那么驱动程序中如何实现呢?
|
|
沙发#
发布于:2003-04-30 11:37
这个完成例程是在用户态调用的吧
|
|
|
板凳#
发布于:2003-05-01 09:41
用户态调用?我认为是由驱动程序调用的,不知对不对,哪位给指点一下?
|
|
地板#
发布于:2003-05-01 12:31
在用户态call的,怎么会由driver来call呢?
|
|
地下室#
发布于:2003-05-01 21:36
我想如果是用WINDRIVER开发的,应该就是在它那个用户模式的驱动程序里写吧?
但是如果是用DS或者DDK写的,是不是就应该写一个单独的应用程序来调用驱动程序工作? 个人理解,多指教! |
|
5楼#
发布于:2003-05-02 20:42
下面是ReadFileEx的原型:
BOOL ReadFileEx( HANDLE hFile, // handle to file LPVOID lpBuffer, // data buffer DWORD nNumberOfBytesToRead, // number of bytes to read LPOVERLAPPED lpOverlapped, // offset LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine // completion routine ); lpCompletionRoutine [in] Pointer to the completion routine to be called when the read operation is complete and the calling thread is in an alertable wait state. 哪位给解释一下? |
|
6楼#
发布于:2003-05-03 01:35
系统把这个函数记录在irp栈里,当driver调用IoCompleteIrp时,系统检查栈的适当位置,如果发现已经注册了完成函数,就调用它。
|
|
7楼#
发布于:2003-05-18 16:40
我也是在搞这方面的毕设,我刚刚接触,不是很懂啊,我也想实现具体的应用程序和驱动程序的交互,而且想能够手动的往里写数据,并能够显示所接收的数据是什么,基于D12测试板,不知可以作到不,如果有人作出来了,请多指教啊,如果有这方面的原代码什么的,还有自己写的驱动程序的原代码,我都需要,还有一个多月我的毕设就要答辩了,我还没头绪呢?请各位高手多帮帮忙,感激不尽。如有请给我发email:zhang2001x@mail.china.com拜托了
|
|