Compartilhar via


Função FsRtlEnterFileSystem

A macro FsRtlEnterFileSystem desabilita temporariamente a entrega de chamadas normais de procedimento assíncrono no modo kernel (APC). ApCs especiais no modo kernel ainda são entregues.

Sintaxe

VOID FsRtlEnterFileSystem(
   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.

Os drivers de filtro do sistema de arquivos podem desabilitar a entrega de APCs de kernel normais chamando FsRtlEnterFileSystem ou KeEnterCriticalRegion antes de IoCallDriver somente se FsRtlExitFileSystem ou KeLeaveCriticalRegion estiver na mesma rotina de expedição. Eles não devem chamar FsRtlEnterFileSystem ou KeEnterCriticalRegion antes de IoCallDriver e, em seguida, chamar FsRtlExitFileSystem ou KeLeaveCriticalRegion na rotina de conclusão do IRP. O Verificador de Driver tem uma regra para ajudar a capturar essa condição.

Os drivers de filtro do sistema de arquivos devem desabilitar APCs de kernel normais antes de adquirir qualquer recurso. Os drivers de filtro do sistema de arquivos adquirem recursos com as seguintes rotinas:

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.

Requisitos

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

Confira também

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel