Compartir a través de


Función ExAcquireResourceSharedLite (wdm.h)

La rutina ExAcquireResourceSharedLite adquiere el recurso especificado para el acceso compartido mediante el subproceso que realiza la llamada.

Sintaxis

BOOLEAN ExAcquireResourceSharedLite(
  [in, out] PERESOURCE Resource,
  [in]      BOOLEAN    Wait
);

Parámetros

[in, out] Resource

Puntero al recurso que se va a adquirir.

[in] Wait

Especifica el comportamiento de la rutina siempre que el recurso no se pueda adquirir inmediatamente. Si es TRUE, el autor de la llamada se coloca en un estado de espera hasta que se pueda adquirir el recurso. Si es FALSE, la rutina devuelve inmediatamente, independientemente de si se puede adquirir el recurso.

Valor devuelto

El autor de la llamada puede liberar el recurso llamando a ExReleaseResourceLite o ExReleaseResourceForThreadLite.

ExAcquireResourceSharedLite devuelve TRUE si se adquiere (o cuándo) el recurso. Esta rutina devuelve FALSE si la espera de entrada es FALSE y no se puede conceder acceso compartido inmediatamente.

Comentarios

Si al autor de la llamada se le concede acceso compartido al recurso determinado o cuando se le da acceso compartido, depende de lo siguiente:

  • Si el recurso no está registrado actualmente, se concede acceso compartido inmediatamente al subproceso actual.

  • Si el autor de la llamada ya ha adquirido el recurso (para el acceso compartido o exclusivo), al subproceso actual se le concede el mismo tipo de acceso de forma recursiva. Tenga en cuenta que realizar esta llamada no convierte el acceso exclusivo de un autor de llamada de un recurso determinado al acceso compartido.

  • Si el recurso es propiedad actualmente como compartido por otro subproceso y ningún subproceso está esperando acceso exclusivo al recurso, el acceso compartido se concede al autor de la llamada inmediatamente. El autor de la llamada se coloca en un estado de espera si hay un camarero exclusivo.

  • Si el recurso es propiedad actualmente como exclusivo por otro subproceso o si hay otro subproceso esperando acceso exclusivo y el autor de la llamada aún no tiene acceso compartido al recurso, el subproceso actual se coloca en un estado de espera (Wait establecido en TRUE) o ExAcquireResourceSharedLite devuelve FALSE.

La entrega normal de APC del kernel debe deshabilitarse antes de llamar a esta rutina. Deshabilite la entrega normal de APC del kernel mediante una llamada a KeEnterCriticalRegion. La entrega debe permanecer deshabilitada hasta que se libere el recurso, momento en el que se puede volver a habilitar llamando a KeLeaveCriticalRegion. Para obtener más información, vea Deshabilitar las API.

Requisitos

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

Consulte también

ExAcquireResourceExclusiveLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExConvertExclusiveToSharedLite

ExGetExclusiveWaiterCount

ExGetSharedWaiterCount

ExInitializeResourceLite

ExIsResourceAcquiredSharedLite

ExReinitializeResourceLite

ExReleaseResourceForThreadLite