如何与Windows中的用户区域的驱动程序进行通信? (Vista,如果这有所不同.)我可以,以及如何与驱动程序站点的服务进行通信?
我实际上不是很懒,应该让我的老板给我买一本书,但我不知道哪一本.猜测来自MSDN的命令和部分有点紧张和时间没有正确的搜索条件.有人可以在文档中删除我要查找的一些术语吗?
OSR online是编写Windows驱动程序的良好信息来源.
原文链接:https://www.f2er.com/windows/371861.htmlHow to name devices in kernel mode(带有访问安全性的链接).
基本路径是:
使用其中一个命名函数命名您的设备对象(例如WdfDeviceInitAssignName).
在您的服务中:
hDev = CreateFile( <obj name>,...,OVERLAPPED ) DeviceIOControl( hDev,..,OVERLAPPED); while( !end ) SleepEx( 100,true /*bAltertable*/ ); ...
在驱动程序中,您有一个IRP队列,您可以在其中对来自服务的请求进行排队.如果要调用该服务,请完成其中一个IRP.
注意:它有点复杂……并且取决于您正在使用的驱动程序框架/模型.我只需要在NDIS过滤器驱动程序中执行此操作一次.再问一次,如果您需要更多信息.