Compartir a través de


Función ExWaitForRundownProtectionReleaseCacheAware (wdm.h)

La rutina ExWaitForRundownProtectionReleaseCacheAware espera hasta que todos los controladores a los que ya se haya concedido protección de ejecución con reconocimiento de caché completen sus accesos al objeto compartido.

Sintaxis

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

Parámetros

[in, out] RunRef

Puntero a una estructura EX_RUNDOWN_REF_CACHE_AWARE inicializada por una llamada anterior a ExAllocateCacheAwareRundownProtection o ExInitializeRundownProtectionProtectionCacheAware. Las rutinas de protección con reconocimiento de caché usan esta estructura para realizar un seguimiento del estado de ejecución del objeto compartido asociado. Esta estructura es opaca para los controladores.

Valor devuelto

None

Observaciones

El controlador llama a esta rutina que posee un objeto que reside en la memoria compartida y al que acceden otros controladores. Antes de eliminar este objeto, el controlador propietario debe llamar a esta rutina para esperar a que se completen los accesos pendientes del objeto. Después de que exWaitForRundownProtectionReleaseCacheAware devuelva, el controlador propietario puede eliminar el objeto de forma segura.

Una vez que se llama a ExWaitForRundownProtectionReleaseCacheAware , la rutina ExAcquireRundownProtectionCacheAware no concede más solicitudes para la protección contra la ejecución con reconocimiento de caché de controladores que intentan acceder al objeto compartido.

La rutina espera a que se devuelva hasta que todos los controladores a los que se concedió previamente la protección de ejecución compatible con la memoria caché terminen de acceder al objeto. A medida que finaliza cada controlador, llama a la rutina ExReleaseRundownProtectionCacheAware para liberar la protección de degradación compatible con caché adquirida anteriormente. Cuando se completan todos los accesos pendientes, ExWaitForRundownProtectionReleaseCacheAware devuelve y el objeto se puede eliminar de forma segura.

Si se llama a ExWaitForRundownProtectionReleaseCacheAware cuando todos los controladores a los que se concedió previamente la protección de ejecución ya han terminado de acceder al objeto compartido, la rutina cambia el estado del objeto para que se ejecute y vuelve inmediatamente, sin esperar.

Si se llama a ExWaitForRundownProtectionReleaseCacheAware para ejecutar un objeto compartido, pero el parámetro RunRef indica que este objeto ya está inactivo, la llamada no tiene ningún efecto, pero no se trata como un error.

Para obtener más información, consulte Protección de desaprotección con reconocimiento de caché.

Requisitos

Requisito Value
Servidor mínimo compatible Windows Server 2003, Service Pack 1
Encabezado wdm.h (incluya Wdm.h)
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), SpNoWait(storport)

Consulte también

ExAcquireRundownProtectionCacheAware

ExAcquireRundownProtectionCacheAwareEx

ExAllocateCacheAwareRundownProtection

ExFreeCacheAwareRundownProtection

ExInitializeRundownProtectionCacheAware

ExReInitializeRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAwareEx

ExRundownCompletedCacheAware

ExSizeOfRundownProtectionCacheAware