为什么IoCreateNotificationEvent用不了?

daviu1234   2009-8-13 00:17 楼主
我想在驱动与应用程序之间用事件通信,于是在IRP_MJ_DEVICE_CONTROL派遣函数中如此调用
RtlInitUnicodeString(&eventname, L"\\BasedNamedObjects\\name");
event = IoCreateNotificationEvent(&eventname, &eventhandle);
但是却一直都是返回NULL,不能创建或打开事件,这是怎么回事?

回复评论 (3)

eventname和eventhandle这2个变量是怎么定义的?
会不会是因为本身就已经定义成指针,然后你再加了&?

还有你本身的BasedNamedObjects存不存在
点赞  2009-8-13 09:00
UNICODE_STRING eventname;
HANDLE eventhandle;
PKEVENT event;

BasedNamedObjects目录不是系统初始化时建立用来和应用共享事件的吗?我也是在系统启动之后才调用这个函数,怎么会不存在?
有谁成功调用过这个函数的吗?可以贴这段的源代码上来参考吗?谢谢……
点赞  2009-8-14 09:23
    RtlInitUnicodeString(&SyncEventName, L"\\BaseNamedObjects\\SyncEvent\0");
    fdoData->pSyncEvent = IoCreateNotificationEvent(&SyncEventName, &fdoData->hSyncEventHandle);

也是类似这么调用的,没发现你这个有什么问题啊
点赞  2009-10-14 22:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复