Partilhar via


Função FsRtlExitFileSystem

A macro FsRtlExitFileSystem reabilita a entrega de APCs normais no modo kernel que uma chamada anterior para FsRtlEnterFileSystem desabilitou.

Sintaxe

VOID FsRtlExitFileSystem(
   VOID 
);

Parâmetros

Nenhum

Retornar valor

Essa função não retorna um valor.

Comentários

Cada rotina de ponto de entrada do driver do sistema de arquivos deve chamar FsRtlEnterFileSystem imediatamente antes de adquirir um recurso necessário para executar uma solicitação de E/S de arquivo e chamar FsRtlExitFileSystem imediatamente depois. Isso garante que a rotina não possa ser suspensa durante a execução e, portanto, bloqueie outras solicitações de E/S de arquivo.

Cada chamada bem-sucedida para FsRtlEnterFileSystem deve ser correspondida por uma chamada subsequente para FsRtlExitFileSystem.

Ao contrário dos sistemas de arquivos locais e dos redirecionadores de rede, os drivers de filtro do sistema de arquivos nunca devem desabilitar a entrega de APCs de kernel normais (chamando FsRtlEnterFileSystem ou KeEnterCriticalRegion ou acionando para IRQL APC_LEVEL) em uma chamada para IoCallDriver.

A única vez em que um driver de filtro do sistema de arquivos deve desabilitar APCs de kernel normais é imediatamente antes de chamar ExAcquireResourceExclusive, ExAcquireResourceLite, ExAcquireResourceSharedLite ou ExAcquireSharedStarveExclusive. Depois que o driver de filtro chamar ExReleaseResource ou ExReleaseResourceLite, ele deverá reabilitar imediatamente a entrega de APCs de kernel normais. Como alternativa a FsRtlEnterFileSystem, os drivers de minifiltro podem usar as rotinas FltAcquireResourceExclusive, FltAcquireResourceShared e FltReleaseResource , que lidam corretamente com APCs ao adquirir e liberar um recurso.

Não é necessário desabilitar APCs de kernel normais antes de chamar ExAcquireSharedWaitForExclusive porque essa rotina chama KeRaiseIrqlToDpcLevel, que desabilita APCs de kernel normais e especiais. Também não é necessário fazer isso antes de chamar ExAcquireFastMutex ou ExAcquireResourceExclusive, porque essas rotinas desabilitam APCs de kernel normais.

Requisitos

Tipo de Requisito Requisito
parâmetro Ntifs.h (inclua Ntifs.h)
IRQL <= APC_LEVEL

Confira também

ExAcquireFastMutex

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlEnterFileSystem

IoCallDriver

KeLeaveCriticalRegion

KeRaiseIrqlToDpcLevel