Función ExEnterCriticalRegionAndAcquireResourceExclusive (wdm.h)

La rutina ExEnterCriticalRegionAndAcquireResourceExclusive entra primero en una región crítica y, a continuación, adquiere acceso exclusivo al recurso especificado.

Sintaxis

PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
  PERESOURCE Resource
);

Parámetros

Resource

[dentro, fuera] Puntero al recurso que se va a adquirir para el acceso exclusivo. Este parámetro apunta a una estructura ERESOURCE 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 rutina ExInitializeResourceLite o ExReinitializeResourceLite .

Valor devuelto

Puntero a una estructura opaca del sistema. Los controladores deben omitir este valor devuelto.

Comentarios

Si se llama a esta rutina cuando el recurso especificado no está disponible inmediatamente para el acceso exclusivo, el subproceso que realiza la 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 esté adelantado por un APC mientras el subproceso contiene un recurso compartido al que el APC podría 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 rutina ExReleaseResourceAndLeaveCriticalRegion .

Para obtener más información sobre el uso de una estructura ERESOURCE para sincronizar el acceso exclusivo a un recurso, consulte Introducción a las rutinas de ERESOURCE. 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.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2003 SP1
Encabezado wdm.h
IRQL <= APC_LEVEL
Reglas de cumplimiento de DDI CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport)

Consulte también

ERESOURCE

ExAcquireResourceExclusiveLite

ExInitializeResourceLite

ExReinitializeResourceLite

ExReleaseResourceLite

ExReleaseResourceAndLeaveCriticalRegion

KeEnterCriticalRegion

KeLeaveCriticalRegion