我想在驱动与应用程序之间用事件通信,于是在IRP_MJ_DEVICE_CONTROL派遣函数中如此调用
RtlInitUnicodeString(&eventname, L"\\BasedNamedObjects\\name");
event = IoCreateNotificationEvent(&eventname, &eventhandle);
但是却一直都是返回NULL,不能创建或打开事件,这是怎么回事?
eventname和eventhandle这2个变量是怎么定义的?
会不会是因为本身就已经定义成指针,然后你再加了&?
还有你本身的BasedNamedObjects存不存在
UNICODE_STRING eventname;
HANDLE eventhandle;
PKEVENT event;
BasedNamedObjects目录不是系统初始化时建立用来和应用共享事件的吗?我也是在系统启动之后才调用这个函数,怎么会不存在?
有谁成功调用过这个函数的吗?可以贴这段的源代码上来参考吗?谢谢……
RtlInitUnicodeString(&SyncEventName, L"\\BaseNamedObjects\\SyncEvent\0");
fdoData->pSyncEvent = IoCreateNotificationEvent(&SyncEventName, &fdoData->hSyncEventHandle);
也是类似这么调用的,没发现你这个有什么问题啊