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) |