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
ExAcquireResourceExclusiveLite