ExAcquireRundownProtection 函数 (wdm.h)

ExAcquireRundownProtection 例程尝试获取共享对象的运行保护,以便调用方可以安全地访问该对象。

语法

BOOLEAN ExAcquireRundownProtection(
  [in, out] PEX_RUNDOWN_REF RunRef
);

参数

[in, out] RunRef

指向先前调用 ExInitializeRundownProtection 例程初始化的 EX_RUNDOWN_REF 结构的指针。 运行保护例程使用此结构来跟踪关联的共享对象的运行状态。 此结构对驱动程序不透明。

返回值

如果例程成功获取调用方运行保护,则 ExAcquireRundownProtection 返回 true。 否则,它将返回 FALSEFALSE 的返回值 指示对象的运行已启动,并且该对象必须被视为无效。

言论

为了安全访问共享对象,驱动程序调用 ExAcquireRundownProtection 获取对象的运行保护。 例程返回 TRUE,以指示运行保护有效。 当运行保护生效时,驱动程序可以安全地访问该对象,而不会有在访问完成之前删除该对象的风险。

只要运行块本身是非分页的,就可以在DISPATCH_LEVEL调用此函数。

完成访问后,驱动程序调用 ExReleaseRundownProtection,以释放以前获取的运行保护。

如果 ExAcquireRundownProtection 返回 FALSE,则不再可访问该对象。 例如,如果对象要替换为新对象,调用方必须等待对象所有者创建新对象,然后协商对新对象的访问。

有关详细信息,请参阅 Run-Down 保护

要求

要求 价值
最低支持的客户端 从 Windows XP 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (请参阅备注)
DDI 符合性规则 HwStorPortProhibitedDIS(storport)

另请参阅

EX_RUNDOWN_REF

ExInitializeRundownProtection

ExReleaseRundownProtection