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 结构不同,推送锁不能以递归方式获取。 如果调用方已获取独占或共享访问的推送锁,线程将挂起。
何时向调用方授予对给定推送锁的独占访问权限取决于以下各项:
如果推送锁当前是无所有者的,则会立即授予对当前线程的独占访问权限。
如果另一个线程已获取推送锁进行独占或共享访问,则当前线程将进入等待状态,直到可以获取推送锁。
要求
要求 | 值 |
---|---|
Header | fltkernel.h |
Library | FltMgr.lib |