Función ExEnterCriticalRegionAndAcquireResourceExclusive (wdm.h)
La rutina ExEnterCriticalRegionAndAcquireResourceExclusive primero entra en una región crítica y, a continuación, adquiere acceso exclusivo al recurso especificado.
PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
PERESOURCE Resource
);
Resource
[dentro, fuera] Puntero al recurso que se va a adquirir para el acceso exclusivo. Este parámetro apunta a una estructura deERESOURCE asignada por el autor de la llamada. El autor de la llamada asignó previamente esta estructura desde un grupo no paginado y la inicializó llamando a la rutinaexInitializeResourceLiteo ExReinitializeResourceLite.
Puntero a una estructura opaca del sistema. Los controladores deben omitir este valor devuelto.
Si se llama a esta rutina cuando el recurso especificado no está disponible inmediatamente para el acceso exclusivo, el subproceso de llamada se bloquea hasta que el recurso esté disponible.
Mientras un subproceso de controlador se ejecuta en la región crítica, no se ejecutan las API de usuario del controlador y las API de kernel normales. Las API de kernel especiales se siguen ejecutando. Para obtener más información sobre estos tipos de APC, consulte Tipos de API.
Al deshabilitar temporalmente las API de kernel normales, exEnterCriticalRegionAndAcquireResourceExclusive impide que un subproceso de llamada de nivel pasivo se adelante a un APC mientras el subproceso contiene un recurso compartido al que APC puede intentar acceder.
El subproceso que realiza la llamada debe permanecer en la región crítica y contener el recurso especificado para que ya no sea necesario. Para liberar el recurso especificado y dejar la región crítica, llame a la rutinaExReleaseResourceAndLeaveCriticalRegion.
Para obtener más información sobre el uso de una estructura deERESOURCEpara sincronizar el acceso exclusivo a un recurso, consulte Introduction to ERESOURCE Routines. Para obtener más información sobre cómo escribir y salir de una región crítica, consulte regiones críticas y regiones protegidas.
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista |
servidor mínimo admitido | Windows Server 2003 SP1 |
encabezado de | wdm.h |
irQL | <= APC_LEVEL |
reglas de cumplimiento de DDI | CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport) |
ExAcquireResourceExclusiveLite