Dispatch Routine IRQL and Thread ContextThe following table summarizes the IRQL and thread context requirements for file system filter driver dispatch routines.
Dispatch Routine |
Caller's IRQL: |
Caller's Thread Context: |
Cleanup |
PASSIVE_LEVEL |
Nonarbitrary |
Close |
APC_LEVEL |
Arbitrary |
Create |
PASSIVE_LEVEL |
Nonarbitrary |
DeviceControl (except paging I/O) |
PASSIVE_LEVEL |
Nonarbitrary |
DeviceControl (paging I/O path) |
APC_LEVEL |
Arbitrary |
DirectoryControl |
APC_LEVEL |
Arbitrary |
FlushBuffers |
PASSIVE_LEVEL |
Nonarbitrary |
FsControl (except paging I/O) |
PASSIVE_LEVEL |
Nonarbitrary |
FsControl (paging I/O path) |
APC_LEVEL |
Arbitrary |
LockControl |
PASSIVE_LEVEL |
Nonarbitrary |
PnP |
PASSIVE_LEVEL |
Arbitrary |
QueryEa |
PASSIVE_LEVEL |
Nonarbitrary |
QueryInformation |
PASSIVE_LEVEL |
Nonarbitrary |
QueryQuota |
PASSIVE_LEVEL |
Nonarbitrary |
QuerySecurity |
PASSIVE_LEVEL |
Nonarbitrary |
QueryVolumeInfo |
PASSIVE_LEVEL |
Nonarbitrary |
Read (except paging I/O) |
PASSIVE_LEVEL |
Nonarbitrary |
Read (paging I/O path) |
APC_LEVEL |
Arbitrary |
SetEa |
PASSIVE_LEVEL |
Nonarbitrary |
SetInformation |
PASSIVE_LEVEL |
Nonarbitrary |
SetQuota |
PASSIVE_LEVEL |
Nonarbitrary |
SetSecurity |
PASSIVE_LEVEL |
Nonarbitrary |
SetVolumeInfo |
PASSIVE_LEVEL |
Nonarbitrary |
Shutdown |
APC_LEVEL |
Arbitrary |
Write (except paging I/O) |
PASSIVE_LEVEL |
Nonarbitrary |
Write (paging I/O path) |
APC_LEVEL |
Arbitrary |