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