이러한 규칙을 사용하여 드라이버가 필요한 IRQL에서 DDI 호출을 수행하는지 확인합니다.
IRQL 규칙을 따르지 않는 드라이버는 작업 중에 심각한 문제를 일으킬 수 있으며 이로 인해 교착 상태 또는 컴퓨터가 충돌할 수 있습니다.
이 부분에서는
| 주제 | 설명 |
|---|---|
Flags_Irql 규칙은 현재 IRQL을 나타내는 디스패치 수준 플래그 매개 변수가 있는 콜백 함수 내에서 KeGetCurrentIrql을 호출해서는 안 되도록 지정합니다. 디스패치 수준 플래그를 올바르게 사용하면 IRQL을 설정하는 불필요한 시도를 방지할 수 있습니다. 이 플래그를 사용하는 방법에 대한 자세한 내용은 디스패치 IRQL 추적을 참조하세요. |
|
Irql_CallManager_Function 규칙은 올바른 IRQL 수준에서 NDIS CallManager에 대한 NDIS 함수를 호출하도록 지정합니다. |
|
Irql_Connection_Function 규칙은 프로토콜 드라이버에 대한 NDIS 연결 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_Filter_Driver_Function 규칙은 필터 드라이버에 대한 NDIS 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_Gather_DMA_Function 규칙은 올바른 IRQL 수준에서 NDIS 분산/수집 DMA 함수를 호출해야 한다고 지정합니다. |
|
Irql_IM_Function 규칙은 올바른 IRQL 수준에서 IM(Intermediate) 드라이버에 대한 NDIS 함수를 호출해야 한다고 지정합니다. |
|
Irql_Interfaces_Function 규칙은 올바른 IRQL 수준에서 NDIS 네트워크 인터페이스 함수를 호출해야 한다고 지정합니다. |
|
Irql_Interrupt_Function 규칙은 인터럽트용 NDIS 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_IrqlSetting_Function 규칙은 올바른 IRQL 수준에서 NDIS 인터럽트 매크로를 호출해야 한다고 지정합니다. |
|
Irql_MCM_Function 규칙은 드라이버에 대한 NDIS MCM 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_MCO_Function 규칙은 미니포트 드라이버에 대한 NDIS MCO DPI를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_Miniport_Driver_Function 규칙은 미니포트 드라이버에 대한 NDIS 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_Miscellaneous_Function 규칙은 올바른 IRQL 수준에서 NDIS 함수를 호출해야 한다고 지정합니다. |
|
Irql_NetBuffer_Function 규칙은 올바른 IRQL 수준에서 NET_BUFFER 관련 함수를 호출해야 한다고 지정합니다. |
|
Irql_OID_Function 규칙은 올바른 IRQL 수준에서 NDIS OID 요청 DDI를 호출해야 한다고 지정합니다. |
|
Irql_Protocol_Driver_Function 규칙은 CoNDIS 클라이언트에 대한 NDIS 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_SendRcv_Function 규칙은 올바른 IRQL 수준에서 NDIS 드라이버에 대한 송신 및 수신 함수를 호출해야 한다고 지정합니다. |
|
Irql_StatusIndication_Function 규칙은 미니포트 및 필터 드라이버에 대한 NDIS 상태 표시 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
Irql_Synch_Function 규칙은 올바른 IRQL 수준에서 NDIS 인터럽트 및 동기화 DDI를 호출해야 한다고 지정합니다. |
|
Irql_Timer_Function 규칙은 올바른 IRQL 수준에서 NDIS 타이머 서비스 함수를 호출해야 한다고 지정합니다. |
Irql 규칙 집합을 선택하려면
Microsoft Visual Studio에서 드라이버 프로젝트(.vcxProj)를 선택합니다. 드라이버 메뉴에서 정적 드라이버 검증 도구 실행을 클릭합니다.
규칙 탭을 클릭합니다. 규칙 집합에서 Irql을 선택합니다.
Visual Studio 개발자 명령 프롬프트 창에서 기본 규칙 집합을 선택하려면 /check 옵션을 사용하여 Irql.sdv를 지정합니다. 다음은 그 예입니다.
msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32자세한 내용은 "정적 드라이버 검증 도구를 사용하여 드라이버의 결함을 찾는 방법"과 "MSBuild의 정적 드라이버 검증 도구 명령"을 참조하세요.