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