exAcquirePushLockExclusive 宏 (wdm.h)
获取由调用线程进行独占访问的给定推送锁。
语法
void ExAcquirePushLockExclusive(
Lock
);
参数
Lock
不透明的推送锁定指针。 此指针必须已通过先前对 ExInitializePushLock 的调用进行初始化。
返回值
无
备注
推送锁类似于 ERESOURCE 结构 (也称为资源) ,因为它们可以获取共享或独占访问。 有关推送锁的详细信息,请参阅 ExInitializePushLock 的参考条目。
与 ERESOURCE 结构不同,推送锁不能以递归方式获取。 如果调用方已获取独占或共享访问的推送锁,线程将挂起。 当向调用方授予对给定推送锁的独占访问权限时,取决于以下各项:
如果推送锁当前是无所有者的,则会立即授予对当前线程的独占访问权限。
如果另一个线程已获取推送锁进行独占或共享访问,则当前线程将进入等待状态,直到可以获取推送锁。
在调用此例程之前,驱动程序必须通过调用 KeEnterCriticalRegion 来禁用正常的内核 APC 传递。 通过调用 KeLeaveCriticalRegion 在释放推送锁后重新启用了传递。 有关详细信息,请参阅 禁用 APC。
若要在获取推送锁后释放它,请调用 ExReleasePushLockExclusive。 每次调用 ExAcquirePushLockExclusive 必须与对 ExReleasePushLockExclusive 的后续调用匹配。
若要获取用于共享访问的推送锁,请调用 ExAcquirePushLockShared。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1809 |
标头 | wdm.h |