기타 규칙 집합(WDM)
이러한 규칙을 사용하여 드라이버가 레지스트리 키, 문자열 및 디바이스 개체 포인터의 적절한 처리에 대한 일반적인 요구 사항 집합을 올바르게 따르는지 확인합니다.
섹션 내용
항목 | Description |
---|---|
AddDevice 규칙은 드라이버의 AddDevice 루틴이 IoCreateDevice를 호출한 후에만 IoAttachDeviceToDeviceStack을 호출한다고 지정합니다. |
|
DanglingDeviceObjectReference 규칙은 드라이버가 IoGetAttachedDeviceReference가 반환한 것과 동일한 디바이스 개체 포인터를 사용하여 ObDereferenceObject를 호출함을 지정합니다. |
|
PnpSameDeviceObject 규칙은 드라이버가 유효한 대상 디바이스 개체에 대한 포인터를 사용하여 IoAttachDeviceToDeviceStack을 호출하도록 지정합니다. |
|
TargetRelationNeedsRef 규칙은 TargetDeviceRelation 쿼리를 처리할 때 드라이버의 DispatchPnP 루틴이 다음 함수 중 하나를 호출하여 자식 디바이스의 PDO를 참조하도록 지정합니다. |
|
UnSafeAllocatePool 은 드라이버가 더 이상 사용되지 않는 DDI를 사용하여 메모리를 할당하지 않는지 확인하는 중요한 보안 규칙입니다. |
|
ZwRegistryCreate 규칙은 ZwCreateKey를 호출한 후 드라이버가 레지스트리 키에 대한 열린 핸들을 보유하는 동안에만 다음 레지스트리 함수를 호출할 수 있음을 지정합니다(즉, ZwClose 또는 ZwDeleteKey를 호출하여 레지스트리 키에 대한 핸들을 닫거나 삭제하기 전에). |
|
ZwRegistryOpen 규칙은 ZwOpenKey를 호출한 후 드라이버가 레지스트리 키(즉, ZwClose 또는 ZwDeleteKey를 호출하기 전에)에 대한 열린 핸들을 보유하는 동안에만 다음 레지스트리 함수를 호출하도록 지정합니다. |
기타 규칙 집합을 선택하려면
Microsoft Visual Studio에서 드라이버 프로젝트(.vcxProj)를 선택합니다. 드라이버 메뉴에서 정적 드라이버 검증 도구 시작...을 클릭합니다.
규칙 탭을 클릭합니다. 규칙 집합에서 기타를 선택합니다.
Visual Studio 개발자 명령 프롬프트 창에서 기본 규칙 집합을 선택하려면 /검사 옵션을 사용하여 Miscellaneous.sdv를 지정합니다. 예를 들면 다음과 같습니다.
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
자세한 내용은 정적 드라이버 검증 도구를 사용하여 드라이버에서 결함 찾기 및 정적 드라이버 검증 도구 명령(MSBuild)을 참조하세요.