exAcquirePushLockExclusive 宏 (wdm.h)

获取由调用线程进行独占访问的给定推送锁。

语法

void ExAcquirePushLockExclusive(
   Lock
);

参数

Lock

不透明的推送锁定指针。 此指针必须已通过先前对 ExInitializePushLock 的调用进行初始化。

返回值

备注

推送锁类似于 ERESOURCE 结构 (也称为资源) ,因为它们可以获取共享或独占访问。 有关推送锁的详细信息,请参阅 ExInitializePushLock 的参考条目。

与 ERESOURCE 结构不同,推送锁不能以递归方式获取。 如果调用方已获取独占或共享访问的推送锁,线程将挂起。 当向调用方授予对给定推送锁的独占访问权限时,取决于以下各项:

  • 如果推送锁当前是无所有者的,则会立即授予对当前线程的独占访问权限。

  • 如果另一个线程已获取推送锁进行独占或共享访问,则当前线程将进入等待状态,直到可以获取推送锁。

在调用此例程之前,驱动程序必须通过调用 KeEnterCriticalRegion 来禁用正常的内核 APC 传递。 通过调用 KeLeaveCriticalRegion 在释放推送锁后重新启用了传递。 有关详细信息,请参阅 禁用 APC

若要在获取推送锁后释放它,请调用 ExReleasePushLockExclusive。 每次调用 ExAcquirePushLockExclusive 必须与对 ExReleasePushLockExclusive 的后续调用匹配。

若要获取用于共享访问的推送锁,请调用 ExAcquirePushLockShared

要求

要求
最低受支持的客户端 Windows 10 版本 1809
标头 wdm.h

另请参阅

ExInitializePushLock

KeEnterCriticalRegion

ExReleasePushLockExclusive

ExAcquirePushLockShared