Freigeben über


FsRtlEnterFileSystem-Funktion

Das FsRtlEnterFileSystem-Makro deaktiviert vorübergehend die Übermittlung von asynchronen Prozeduraufrufen (APC) im normalen Kernelmodus. Spezielle Kernelmodus-APCs werden weiterhin bereitgestellt.

Syntax

VOID FsRtlEnterFileSystem(
   VOID
);

Parameter

Keine

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Hinweise

Jede Dateisystemtreibereinstiegsroutine muss FsRtlEnterFileSystem unmittelbar vor dem Abrufen einer Ressource aufrufen, die zum Ausführen einer Datei-E/A-Anforderung erforderlich ist, und fsRtlExitFileSystem sofort danach aufrufen. Dadurch wird sichergestellt, dass die Routine während der Ausführung nicht angehalten werden kann und somit andere Datei-E/A-Anforderungen blockiert werden.

Jeder erfolgreiche Aufruf von FsRtlEnterFileSystem muss durch einen nachfolgenden Aufruf von FsRtlExitFileSystem abgeglichen werden.

Dateisystemfiltertreiber können die Übermittlung normaler Kernel-APCs durch Aufrufen von FsRtlEnterFileSystem oder KeEnterCriticalRegion vor IoCallDriver nur dann deaktivieren, wenn sich FsRtlExitFileSystem oder KeLeaveCriticalRegion in derselben Dispatchroutine befindet. Sie sollten fsRtlEnterFileSystem oder KeEnterCriticalRegion vor IoCallDriver nicht aufrufen und dann FsRtlExitFileSystem oder KeLeaveCriticalRegion in der Abschlussroutine des IRP aufrufen. Driver Verifier verfügt über eine Regel, mit der diese Bedingung abgefangen werden kann.

Dateisystemfiltertreiber sollten normale Kernel-APCs vor dem Abrufen einer Ressource deaktivieren. Dateisystemfiltertreiber rufen Ressourcen mit den folgenden Routinen ab:

Als Alternative zu FsRtlEnterFileSystem können Minifiltertreiber die Routinen FltAcquireResourceExclusive, FltAcquireResourceShared und FltReleaseResource verwenden, die APCs beim Abrufen und Freigeben einer Ressource ordnungsgemäß verarbeiten.

Anforderungen

Anforderungstyp Anforderung
Header Ntifs.h (include Ntifs.h)
IRQL <= APC_LEVEL

Weitere Informationen

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel