ExAcquireRundownProtection 函数 (wdm.h)
ExAcquireRundownProtection 例程尝试获取共享对象的运行保护,以便调用方可以安全地访问该对象。
语法
BOOLEAN ExAcquireRundownProtection(
[in, out] PEX_RUNDOWN_REF RunRef
);
参数
[in, out] RunRef
指向先前调用 ExInitializeRundownProtection 例程初始化的 EX_RUNDOWN_REF 结构的指针。 运行保护例程使用此结构来跟踪关联的共享对象的运行状态。 此结构对驱动程序不透明。
返回值
如果例程成功获取调用方运行保护,则 ExAcquireRundownProtection 返回 true。 否则,它将返回 FALSE。 FALSE 的返回值 指示对象的运行已启动,并且该对象必须被视为无效。
言论
为了安全访问共享对象,驱动程序调用 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) |