Condividi tramite


Funzione FsRtlEnterFileSystem

La macro FsRtlEnterFileSystem disabilita temporaneamente il recapito delle normali chiamate asincrone in modalità kernel (APC). Sono ancora disponibili API speciali in modalità kernel.

Sintassi

VOID FsRtlEnterFileSystem(
   VOID
);

Parametri

nessuno

Valore restituito

Questa funzione non restituisce un valore.

Commenti

Ogni routine del punto di ingresso del driver del file system deve chiamare FsRtlEnterFileSystem immediatamente prima di acquisire una risorsa necessaria per eseguire una richiesta di I/O file e chiamare FsRtlExitFileSystem immediatamente dopo. Ciò garantisce che la routine non possa essere sospesa durante l'esecuzione e quindi bloccare altre richieste di I/O file.

Ogni chiamata riuscita a FsRtlEnterFileSystem deve corrispondere a una chiamata successiva a FsRtlExitFileSystem.

I driver di filtro del file system possono disabilitare il recapito delle normali API del kernel chiamando FsRtlEnterFileSystem o KeEnterCriticalRegion prima di IoCallDriver solo se FsRtlExitFileSystem o KeLeaveCriticalRegion si trova nella stessa routine dispatch. Non devono chiamare FsRtlEnterFileSystem o KeEnterCriticalRegion prima di IoCallDriver e quindi chiamare FsRtlExitFileSystem o KeLeaveCriticalRegion nella routine di completamento di IRP. Driver Verifier ha una regola che consente di intercettare questa condizione.

I driver di filtro del file system devono disabilitare le NORMALI API del kernel prima di acquisire qualsiasi risorsa. I driver di filtro del file system acquisiscono le risorse con le routine seguenti:

In alternativa a FsRtlEnterFileSystem, i driver minifilter possono usare le routine FltAcquireResourceExclusive, FltAcquireResourceShared e FltReleaseResource , che gestiscono correttamente le API durante l'acquisizione e il rilascio di una risorsa.

Requisiti

Tipo di requisito Requisito
Intestazione Ntifs.h (include Ntifs.h)
IRQL <= APC_LEVEL

Vedi anche

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedWaitForExclusive

ExAcquireSharedStarveExclusive

ExReleaseResource

ExReleaseResourceLite

ExTryToAcquireFastMutex

FltAcquireResourceExclusive

FltAcquireResourceShared

FltReleaseResource

FsRtlExitFileSystem

IoCallDriver

KeEnterCriticalRegion

KeRaiseIrqlToDpcLevel