Partager via


Fonction FsRtlEnterFileSystem

La macro FsRtlEnterFileSystem désactive temporairement la remise d’appels de procédure asynchrone en mode noyau normal (APC). Les API spéciales en mode noyau sont toujours livrées.

Syntaxe

VOID FsRtlEnterFileSystem(
   VOID
);

Paramètres

None

Valeur de retour

Cette fonction ne retourne pas de valeur.

Remarques

Chaque routine de point d’entrée de pilote de système de fichiers doit appeler FsRtlEnterFileSystem immédiatement avant d’acquérir une ressource nécessaire à l’exécution d’une demande d’E/S de fichier et appeler FsRtlExitFileSystem immédiatement après. Cela garantit que la routine ne peut pas être suspendue pendant l’exécution et donc bloquer d’autres demandes d’E/S de fichier.

Chaque appel réussi à FsRtlEnterFileSystem doit être mis en correspondance par un appel suivant à FsRtlExitFileSystem.

Les pilotes de filtre de système de fichiers peuvent désactiver la remise des API de noyau normales en appelant FsRtlEnterFileSystem ou KeEnterCriticalRegion avant IoCallDriver uniquement si FsRtlExitFileSystem ou KeLeaveCriticalRegion se trouvent dans la même routine de distribution. Ils ne doivent pas appeler FsRtlEnterFileSystem ou KeEnterCriticalRegion avant IoCallDriver , puis appeler FsRtlExitFileSystem ou KeLeaveCriticalRegion dans la routine d’achèvement de l’IRP. Driver Verifier a une règle pour aider à intercepter cette condition.

Les pilotes de filtre de système de fichiers doivent désactiver les API de noyau normales avant d’acquérir une ressource. Les pilotes de filtre de système de fichiers acquièrent des ressources avec les routines suivantes :

En guise d’alternative à FsRtlEnterFileSystem, les pilotes de minifiltre peuvent utiliser les routines FltAcquireResourceExclusive, FltAcquireResourceShared et FltReleaseResource , qui gèrent correctement les API lors de l’acquisition et de la libération d’une ressource.

Configuration requise

Type d’exigence Condition requise
En-tête Ntifs.h (inclure Ntifs.h)
IRQL <= APC_LEVEL

Voir aussi

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel