Compartilhar via


Função ExEnterCriticalRegionAndAcquireResourceExclusive (wdm.h)

A rotina ExEnterCriticalRegionAndAcquireResourceExclusive primeiro entra em uma região crítica e, em seguida, adquire acesso exclusivo ao recurso especificado.

Sintaxe

PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
  PERESOURCE Resource
);

Parâmetros

Resource

[in, out] Um ponteiro para o recurso a ser adquirido para acesso exclusivo. Esse parâmetro aponta para uma estrutura ERESOURCE alocada pelo chamador. O chamador anteriormente alocou essa estrutura do pool nãopagado e a inicializou chamando a rotina ExInitializeResourceLite ou ExReinitializeResourceLite .

Retornar valor

Um ponteiro para uma estrutura opaca do sistema. Os drivers devem ignorar esse valor retornado.

Comentários

Se essa rotina for chamada quando o recurso especificado não estiver disponível imediatamente para acesso exclusivo, o thread de chamada será bloqueado até que o recurso esteja disponível.

Enquanto um thread de driver é executado na região crítica, as APCs de usuário do driver e as APCs de kernel normais não são executadas. ApCs de kernel especiais ainda são executadas. Para obter mais informações sobre esses tipos de APC, consulte Tipos de APCs.

Ao desabilitar temporariamente as APCs de kernel normais, ExEnterCriticalRegionAndAcquireResourceExclusive impede que um thread de chamada de nível passivo seja impedido por um APC enquanto o thread mantém um recurso compartilhado que o APC pode tentar acessar.

O thread de chamada deve permanecer na região crítica e manter o recurso especificado por não mais do que o necessário. Para liberar o recurso especificado e deixar a região crítica, chame a rotina ExReleaseResourceAndLeaveCriticalRegion .

Para obter mais informações sobre como usar uma estrutura ERESOURCE para sincronizar o acesso exclusivo a um recurso, consulte Introdução às rotinas ERESOURCE. Para obter mais informações sobre como inserir e sair de uma região crítica, consulte Regiões críticas e regiões protegidas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2003 SP1
Cabeçalho wdm.h
IRQL <= APC_LEVEL
Regras de conformidade da DDI CriticalRegions(wdm), HwStorPortProhibitedDIs(storport)

Confira também

ERESOURCE

ExAcquireResourceExclusiveLite

ExInitializeResourceLite

ExReinitializeResourceLite

ExReleaseResourceLite

ExReleaseResourceAndLeaveCriticalRegion

KeEnterCriticalRegion

KeLeaveCriticalRegion