Compartir a través de


Función ExAcquireResourceSharedLite (wdm.h)

La rutina ExAcquireResourceSharedLite adquiere el recurso dado 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 TRUE, el autor de la llamada se coloca en un estado de espera hasta que se pueda adquirir el recurso. Si 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 (o cuándo) se adquiere el recurso. Esta rutina devuelve FALSE si el de espera de entrada es FALSE y no se puede conceder acceso compartido inmediatamente.

Observaciones

Si el autor de la llamada tiene acceso compartido al recurso determinado depende de lo siguiente:

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

  • Si el autor de la llamada ya ha adquirido el recurso (para acceso compartido o exclusivo), al subproceso actual se le concede el mismo tipo de acceso recursivamente. Tenga en cuenta que realizar esta llamada no convierte el acceso exclusivo de un autor de la 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 pone en un estado de espera si hay un waiter 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 llamando a KeEnterCriticalRegion. La entrega debe permanecer deshabilitada hasta que se libere el recurso, en cuyo momento se puede volver a habilitar llamando a KeLeaveCriticalRegion. Para obtener más información, consulte Deshabilitación de las API.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= APC_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlExApcLte3(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Consulte también

exAcquireResourceExclusiveLite

exAcquireSharedStarveExclusive

exAcquireSharedWaitForExclusive

exConvertExclusiveToSharedLite

ExGetExclusiveWaiterCount

ExGetSharedWaiterCount

ExInitializeResourceLite

ExIsResourceAcquiredSharedLite

ExReinitializeResourceLite

ExReleaseResourceForThreadLite