阅读:917回复:3
请教驱程事件问题
有谁来搭救我这个菜鸟啊
我手上有一个串口驱程,但该驱程有数据到的时候无任何事件通知,我现在需要增加该功能,但我是一个菜鸟,刚刚接触驱程才几天时间,从网上知道该使用IoCreateNotificationEvent函数,但该函数该在什么地方调用,望指教!!!! |
|
最新喜欢:![]() |
沙发#
发布于:2004-07-27 14:27
PRKEVENT pRcvEvent;
InBuffer里的值就是你在应用层用CreateEvent生成的Event句柄 |
|
板凳#
发布于:2004-07-27 11:40
很感谢bingjie,小弟先谢谢了
但我还有几个疑问,&GlobalData.pRcvEvent是否就是应用程序传下来的事件名称,对于( HANDLE )( *( PULONG )(&InBuffer[ 0 ]) 我还怎样去获取该值。 |
|
地板#
发布于:2004-07-27 10:42
1。在应用程序里创建一个带有名称的Event,然后把这个Event的句柄通过DeviceIoControl传递到驱动里
2。在驱动里按以下办法获得内核Event对象(RKEvent) Status = ObReferenceObjectByHandle( ( HANDLE )( *( PULONG )(&InBuffer[ 0 ]) ), GENERIC_READ | GENERIC_WRITE, NULL, KernelMode, &GlobalData.pRcvEvent, NULL ); if( !NT_SUCCESS( Status ) ) { TRACE1( "Reference RcvEvent failed: %x", Status ); GlobalData.pRcvEvent = NULL; } 3.以后在应用程序里不断的Wait这个Event, 4.驱动里需要通知应用程序是调用KeSetEvent(...)来触发这个Event |
|