阅读:1044回复:1
关于驱动程序和应用程序通讯的问题
驱动程序和应用程序通过Event通讯:
在应用程序中的一个Event通过DeviceIoControl传递给驱动程序,驱动程序KeSetEvent这个Event,应用程序WaitForSingleObjectEx( Event, 1000, TRUE), ResetEvent( Event ) 1 当驱动程序比较慢地KeSetEvent的时候,工作正常 2 当驱动程序很快的KeSetEvent的时候,应用程序事件有丢失(如驱动程序KeSetEvent了3次,应用程序只等到一次) 请教大侠, 这具体是什么原因, 驱动和应用之间有没有效率比较高的通讯方式? |
|
沙发#
发布于:2007-10-16 10:49
1 事件初始化为同步的而不是notify
2 像这样 do { WaitForSingleObject(hEvent, -1); do { //取完所有该取的东东 DeviceIoControl(...); DoYourWork(...) }while(1); }while(1); 不能这样 do { WaitForSingleObject(hEvent, -1); DeviceIoControl(...); DoYourWork(...) }while(1); |
|