docs.microsoft.com/en-us/windows-hardware/drivers/kernel/managing-hardware-priorities

Managing Hardware Priorities - Windows drivers

Managing Hardware Priorities

docs.microsoft.com

[심플한 설명]
드라이버 함수(DDK, WDK) 사용시 우선순위 확인하기.

ex) AddDevice() 루틴에 함수 사용시 PASSIVE_LEVEL만 허용한다.

[MS 설명]
PASSIVE_LEVEL
Interrupts Masked Off — None.

Driver Routines Called at PASSIVE_LEVEL — DriverEntry, AddDevice, Reinitialize, Unload routines, most dispatch routines, driver-created threads, worker-thread callbacks.

APC_LEVEL
Interrupts Masked Off — APC_LEVEL interrupts are masked off.

Driver Routines Called at APC_LEVEL — Some dispatch routines (see Dispatch Routines and IRQLs).

DISPATCH_LEVEL
Interrupts Masked Off — DISPATCH_LEVEL and APC_LEVEL interrupts are masked off. Device, clock, and power failure interrupts can occur.

Driver Routines Called at DISPATCH_LEVEL — StartIo, AdapterControl, AdapterListControl, ControllerControl, IoTimer, Cancel (while holding the cancel spin lock), DpcForIsr, CustomTimerDpc, CustomDpc routines.

DIRQL
Interrupts Masked Off — All interrupts at IRQL<= DIRQL of driver's interrupt object. Device interrupts with a higher DIRQL value can occur, along with clock and power failure interrupts.

 

[축약 정리]

- PASSIVE_LEVEL: 0 (amd64)

- APC_LEVEL: 1 (amd64)

- DISPATCH_LEVEL: 2 (amd64)

- DIRQL: 3-11 (amd64)

[출처]
마이크로소프트

'Windows Drivers' 카테고리의 다른 글

Windows Driver Model (기초 책)  (0) 2022.07.15
Display Drivers  (0) 2022.07.15
File system driver samples  (0) 2022.07.15
File systems driver design guide  (0) 2022.07.15
whql certification (교차 인증서 종료 안내)  (0) 2022.05.27

+ Recent posts