IRQL 규칙 집합(NDIS)
이러한 규칙을 사용하여 드라이버가 필요한 IRQL에서 DDI 호출을 만드는지 확인합니다.
IRQL 규칙을 따르지 않는 드라이버는 작업 중에 심각한 문제를 일으킬 수 있으며 이로 인해 교착 상태 또는 컴퓨터 충돌이 발생할 수 있습니다.
섹션 내용
항목 | Description |
---|---|
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 규칙은 중간(IM) 드라이버용 NDIS 함수를 올바른 IRQL 수준에서 호출해야 한다고 지정합니다. |
|
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 DDI를 올바른 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 개발자 명령 프롬프트 창에서 기본 규칙 집합을 선택하려면 /검사 옵션을 사용하여 Irql.sdv를 지정합니다. 예를 들면 다음과 같습니다.
msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
자세한 내용은 정적 드라이버 검증 도구를 사용하여 드라이버에서 결함 찾기 및 정적 드라이버 검증 도구 명령(MSBuild)을 참조하세요.