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:
- ExAcquireResourceExclusive
- ExAcquireResourceExclusiveLite
- ExAcquireResourceShared
- ExAcquireResourceSharedLite
- ExAcquireSharedStarveExclusive
- ExAcquireSharedWaitForExclusive
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
ExAcquireResourceExclusiveLite
ExAcquireSharedWaitForExclusive