FltAcquirePushLockExclusiveEx 函数 (fltkernel.h)

FltAcquirePushLockExclusiveEx 例程获取给定的推送锁,供调用线程进行独占访问。

语法

VOID FLTAPI FltAcquirePushLockExclusiveEx(
  [in, out] PEX_PUSH_LOCK PushLock,
            ULONG         Flags
);

参数

[in, out] PushLock

不透明推送锁指针。 此指针必须由之前调用 FltInitializePushLock进行初始化。

Flags

控制锁属性的标志的位掩码。 标志 可以是以下值。

意义
FLT_PUSH_LOCK_DISABLE_AUTO_BOOST 禁用推送锁自动提升。
FLT_PUSH_LOCK_ENABLE_AUTO_BOOST 荒废的;不起作用。 启用推送锁自动提升。

返回值

没有。

言论

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

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

与 ERESOURCE 结构不同,无法以递归方式获取推送锁。 如果调用方已获取推送锁进行独占或共享访问,线程将挂起。

当调用方获得对给定推送锁的独占访问权限时,取决于以下情况:

  • 如果推送锁当前未拥有,则会立即向当前线程授予独占访问权限。

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

要求

要求 价值
标头 fltkernel.h
FltMgr.lib

另请参阅

FltInitializePushLock