exWaitForRundownProtectionReleaseCacheAware 函数 (wdm.h)

ExWaitForRundownProtectionReleaseCacheAware 例程将一直等待,直到已被授予缓存感知运行保护的所有驱动程序完成对共享对象的访问。

语法

void ExWaitForRundownProtectionReleaseCacheAware(
  [in, out] PEX_RUNDOWN_REF_CACHE_AWARE RunRef
);

参数

[in, out] RunRef

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

返回值

备注

此例程由驱动程序调用,该驱动程序拥有驻留在共享内存中并由其他驱动程序访问的对象。 在删除此对象之前,拥有的驱动程序必须调用此例程以等待该对象的任何未完成的访问完成。 在 ExWaitForRundownProtectionReleaseCacheAware 返回后,拥有的驱动程序可以安全地删除该对象。

调用 ExWaitForRundownProtectionReleaseCacheAware 后, ExAcquireRundownProtectionCacheAware 例程不会向尝试访问共享对象的驱动程序授予对缓存感知运行保护的进一步请求。

该例程将等待返回,直到以前授予缓存感知运行保护的所有驱动程序完成访问对象。 每个驱动程序完成后,它会调用 ExReleaseRundownProtectionCacheAware 例程,以释放以前获取的缓存感知故障保护。 完成所有未完成的访问后, ExWaitForRundownProtectionReleaseCacheAware 将返回,并且可以安全地删除该对象。

如果在以前授予运行保护的所有驱动程序都已完成对共享对象的访问后调用 ExWaitForRundownProtectionReleaseCacheAware ,则例程会将对象状态更改为 “运行”,并立即返回,而无需等待。

如果调用 ExWaitForRundownProtectionReleaseCacheAware 以运行共享对象,但 RunRef 参数指示此对象已运行,则调用不起作用,但不会被视为错误。

有关详细信息,请参阅 缓存感知的运行保护

要求

要求
最低受支持的服务器 Windows Server 2003,Service Pack 1
标头 wdm.h (包括 Wdm.h)
DDI 符合性规则 HwStorPortProhibitedDDI (storport) SpNoWait (storport)

另请参阅

ExAcquireRundownProtectionCacheAware

ExAcquireRundownProtectionCacheAwareEx

ExAllocateCacheAwareRundownProtection

ExFreeCacheAwareRundownProtection

ExInitializeRundownProtectionCacheAware

ExReInitializeRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAwareEx

ExRundownCompletedCacheAware

ExSizeOfRundownProtectionCacheAware