Macro ExAcquirePushLockExclusive (wdm.h)

Adquiere el bloqueo de inserción especificado para el acceso exclusivo mediante el subproceso que realiza la llamada.

Sintaxis

void ExAcquirePushLockExclusive(
   Lock
);

Parámetros

Lock

Puntero de bloqueo de inserción opaco. Este puntero debe haberse inicializado mediante una llamada anterior a ExInitializePushLock.

Valor devuelto

None

Observaciones

Los bloqueos de inserción son similares a las estructuras ERESOURCE (también denominadas recursos) en que se pueden adquirir para el acceso compartido o exclusivo. Para obtener más información sobre los bloqueos de inserción, vea la entrada de referencia para ExInitializePushLock.

A diferencia de las estructuras ERESOURCE, los bloqueos de inserción no se pueden adquirir de forma recursiva. Si el autor de la llamada ya ha adquirido el bloqueo de inserción para el acceso exclusivo o compartido, el subproceso se bloquea. Cuando el autor de la llamada tiene acceso exclusivo al bloqueo de inserción especificado, depende de lo siguiente:

  • Si el bloqueo de inserción no está en uso actualmente, se concede acceso exclusivo inmediatamente al subproceso actual.

  • Si otro subproceso ya ha adquirido el bloqueo de inserción para el acceso exclusivo o compartido, el subproceso actual se coloca en un estado de espera hasta que se pueda adquirir el bloqueo de inserción.

Antes de llamar a esta rutina, el controlador debe deshabilitar la entrega normal del kernel APC mediante una llamada a KeEnterCriticalRegion. Entrega reenable después de liberar el bloqueo de inserción llamando a KeLeaveCriticalRegion. Para obtener más información, vea Deshabilitar LAS API.

Para liberar el bloqueo de inserción después de adquirirlo, llame a ExReleasePushLockExclusive. Cada llamada a ExAcquirePushLockExclusive debe coincidir con una llamada posterior a ExReleasePushLockExclusive.

Para adquirir un bloqueo de inserción para el acceso compartido, llame a ExAcquirePushLockShared.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1809
Encabezado wdm.h

Consulte también

ExInitializePushLock

KeEnterCriticalRegion

ExReleasePushLockExclusive

ExAcquirePushLockShared