exAcquireRundownProtection 函数 (wdm.h)

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

语法

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

参数

[in, out] RunRef

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

返回值

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

注解

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

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

完成访问后,驱动程序会调用 ExReleaseRundownProtection 来释放以前获取的断开保护。

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

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

要求

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

另请参阅

EX_RUNDOWN_REF

ExInitializeRundownProtection

ExReleaseRundownProtection