- 应用程序通过DeviceIoControl把Event句柄传送给驱动程序.
bResult=DeviceIoControl(m_hDevice,
IOCTL_SEND_EVENT_HANDLE,
&m_hEvent,
sizeof(HANDLE),
ReData,
4,
&nBytes,
NULL);
- 驱动程序的分发例程序中通过ObReferentceObjectByHandle函数得到内核事件对象
case IOCTL_SEND_EVENT_HANDLE:
HANDLE hEvent=*(HANDLE *)IoBuffer;
stStatus=ObeferenceObjectByHandle(hEvent,
EVENT_MODIFY_STATE,
*ExEventObjectType,
KernelMode,
(PVOID*)pdx->pEvent,
NULL);
...
break;
本文介绍了一种应用程序与驱动程序间通信的方法:应用程序利用DeviceIoControl将Event句柄传递给驱动程序;驱动程序则通过ObReferenceObjectByHandle获取内核事件对象。此过程实现了用户态与内核态之间的有效交互。
7537

被折叠的 条评论
为什么被折叠?



