exWaitForRundownProtectionRelease 函数 (wdm.h)
ExWaitForRundownProtectionRelease 例程将一直等待,直到已被授予运行保护的所有驱动程序完成对共享对象的访问。
语法
void ExWaitForRundownProtectionRelease(
[in, out] PEX_RUNDOWN_REF RunRef
);
参数
[in, out] RunRef
指向 EX_RUNDOWN_REF 结构的指针,该结构由先前对 ExInitializeRundownProtection 例程的调用初始化。 运行保护例程使用此结构来跟踪关联的共享对象的运行状态。 此结构对驱动程序是不透明的。
返回值
无
备注
此例程由驱动程序调用,该驱动程序拥有驻留在共享内存中并由其他驱动程序访问的对象。 在删除此对象之前,拥有的驱动程序必须调用此例程以等待该对象的任何未完成的访问完成。 在 ExWaitForRundownProtectionRelease 返回后,拥有的驱动程序可以安全地删除该对象。
调用 ExWaitForRundownProtectionRelease 后, ExAcquireRundownProtection 例程不会向尝试访问共享对象的驱动程序授予进一步的运行保护请求。 该例程将等待返回,直到以前授予的运行保护的所有驱动程序完成访问对象。 每个驱动程序完成后,它会调用 ExReleaseRundownProtection 例程来释放以前获取的断开保护。 完成所有未完成的访问后, ExWaitForRundownProtectionRelease 将返回,并且可以安全地删除该对象。
如果当以前授予了运行保护的所有驱动程序都已完成访问共享对象时调用 ExWaitForRundownProtectionRelease ,则例程会将对象状态更改为 “运行”,并立即返回,而无需等待。
如果调用 ExWaitForRundownProtectionRelease 以运行共享对象,但 RunRef 参数指示此对象已运行,则调用无效,但不会被视为错误。
有关详细信息,请参阅 Run-Down Protection。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows XP 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h (包括 Wdm.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , SpNoWait (storport) |