Compartir a través de


Función ExWaitForRundownProtectionRelease (wdm.h)

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

Sintaxis

void ExWaitForRundownProtectionRelease(
  [in, out] PEX_RUNDOWN_REF RunRef
);

Parámetros

[in, out] RunRef

Puntero a una estructura de EX_RUNDOWN_REF inicializada por una llamada anterior a la rutina ExInitializeRundownProtection . Las rutinas de protección de degradación 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 se devuelva ExWaitForRundownProtectionRelease , el controlador propietario puede eliminar el objeto de forma segura.

Después de llamar a ExWaitForRundownProtectionRelease , la rutina ExAcquireRundownProtection no concede más solicitudes para la protección contra la ejecución de controladores que intentan acceder al objeto compartido. La rutina espera a que vuelva hasta que todos los controladores a los que se concedió previamente la protección de ejecución terminen de acceder al objeto. A medida que finaliza cada controlador, llama a la rutina ExReleaseRundownProtection para liberar la protección de ejecución adquirida anteriormente. Cuando se completan todos los accesos pendientes, ExWaitForRundownProtectionRelease devuelve y el objeto se puede eliminar de forma segura.

Si se llama a ExWaitForRundownProtectionRelease 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 ExWaitForRundownProtectionRelease 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 reducción de ejecución.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows XP.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), SpNoWait(storport)

Consulte también

EX_RUNDOWN_REF

ExAcquireRundownProtection

ExInitializeRundownProtection

ExReleaseRundownProtection