Função ExAcquireResourceSharedLite (wdm.h)

A rotina ExAcquireResourceSharedLite adquire o recurso fornecido para acesso compartilhado pelo thread de chamada.

Sintaxe

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

Parâmetros

[in, out] Resource

Um ponteiro para o recurso a ser adquirido.

[in] Wait

Especifica o comportamento da rotina sempre que o recurso não pode ser adquirido imediatamente. Se TRUE, o chamador será colocado em um estado de espera até que o recurso possa ser adquirido. Se FALSE, a rotina retornará imediatamente, independentemente de o recurso poder ser adquirido.

Retornar valor

O chamador pode liberar o recurso chamando ExReleaseResourceLite ou ExReleaseResourceForThreadLite.

ExAcquireResourceSharedLite retornaráTRUE se (ou quando) o recurso for adquirido. Essa rotina retornará FALSE se a espera de entrada for FALSE e o acesso compartilhado não puder ser concedido imediatamente.

Comentários

Se ou quando o chamador recebe acesso compartilhado ao recurso especificado depende do seguinte:

  • Se o recurso não for sem proprietário no momento, o acesso compartilhado será concedido imediatamente ao thread atual.

  • Se o chamador já tiver adquirido o recurso (para acesso compartilhado ou exclusivo), o thread atual receberá o mesmo tipo de acesso recursivamente. Observe que fazer essa chamada não converte o acesso exclusivo de um chamador de um determinado recurso em acesso compartilhado.

  • Se o recurso pertencer atualmente como compartilhado por outro thread e nenhum thread estiver aguardando acesso exclusivo ao recurso, o acesso compartilhado será concedido ao chamador imediatamente. O chamador é colocado em um estado de espera se houver um garçom exclusivo.

  • Se o recurso pertencer atualmente como exclusivo por outro thread ou se houver outro thread aguardando acesso exclusivo e o chamador ainda não tiver acesso compartilhado ao recurso, o thread atual será colocado em um estado de espera (Wait set to TRUE) ou ExAcquireResourceSharedLite retornará FALSE.

A entrega normal de APC do kernel deve ser desabilitada antes de chamar essa rotina. Desabilite a entrega normal de APC do kernel chamando KeEnterCriticalRegion. A entrega deve permanecer desabilitada até que o recurso seja liberado, momento em que ele pode ser reabilitado chamando KeLeaveCriticalRegion. Para obter mais informações, consulte Desabilitando APCs.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDIs(storport), IrqlExApcLte3(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Confira também

ExAcquireResourceExclusiveLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExConvertExclusiveToSharedLite

ExGetExclusiveWaiterCount

ExGetSharedWaiterCount

ExInitializeResourceLite

ExIsResourceAcquiredSharedLite

ExReinitializeResourceLite

ExReleaseResourceForThreadLite