VirtualStorport 규칙 집합(Storport)
이러한 규칙을 사용하여 드라이버가 Storport VMiniport(가상 미니포트) 드라이버에 특히 관심이 있는 DDI를 올바르게 호출했는지 확인합니다.
섹션 내용
항목 | Description |
---|---|
이 규칙은 드라이버가 동일한 풀 메모리 블록을 두 번 해제하려고 시도하지 않는지 확인합니다. |
|
이 규칙은 KeSetEvent 가 동일한 이벤트 개체에서 두 번 호출되지 않는지 확인합니다. 동일한 이벤트 개체가 루틴에 전달되면 드라이버는 규칙에 실패합니다. |
|
이 규칙은 IoAllocateIrp 에 의해 할당된 IRP가 IoFreeIrp 에 의해 해제되거나 완료 루틴이 IoSetCompletionRoutine에 의해 설정되었는지 확인합니다. |
|
이 규칙은 HwStorFindAdapter 루틴을 종료할 때 PORT_CONFIGURATION_INFORMATION(Storport) 구조체의 VirtualDevice 필드가 FALSE로 설정되었는지 확인합니다. 이 규칙은 실제 StorPort 미니포트에만 적용됩니다. |
|
이 규칙은 HwStorFindAdapter 루틴을 종료할 때 PORT_CONFIGURATION_INFORMATION(Storport) 구조체의 VirtualDevice 필드가 TRUE로 설정되었는지 확인합니다. 이 규칙은 가상 StorPort 미니포트에만 적용됩니다. |
|
이 규칙은 일반 커널 APC 전달을 사용하지 않도록 설정한 경우에만 드라이버의 특정 동기화 함수 호출이 수행되는지 확인합니다. |
|
이 규칙은 나중에 ZwCreateKey 를 사용하여 만든 레지스트리 키에 대한 핸들이 다른 ZwXxx 루틴에서 올바르게 사용되는지 확인합니다. 이미 열려 있는 핸들에서 ZwOpenKey 루틴을 호출해서는 안 됩니다. 열려 있지 않은 핸들에서는 ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose 및 ZwDeleteKey 루틴을 호출하면 안 됩니다. 반환하기 전에 핸들도 닫아야 합니다. |
|
이 규칙은 ZwOpenKey 를 통해 열린 레지스트리 키에 대한 핸들이 이후에 다른 ZwXxx 루틴에서 올바르게 사용되는지 확인합니다. 열려 있지 않은 핸들에서는 ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose 및 ZwDeleteKey 루틴을 호출하면 안 됩니다. 반환하기 전에 핸들도 닫아야 합니다. |
VirtualStorport 규칙 집합을 선택하려면
Microsoft Visual Studio에서 드라이버 프로젝트(.vcxProj)를 선택합니다. 드라이버 메뉴에서 정적 드라이버 검증 도구 시작...을 클릭합니다.
규칙 탭을 클릭합니다. 규칙 집합에서 VirtualStorport를 선택합니다.
Visual Studio 개발자 명령 프롬프트 창에서 기본 규칙 집합을 선택하려면 /검사 옵션을 사용하여 VirtualStorport.sdv를 지정합니다. 예를 들면 다음과 같습니다.
msbuild /t:sdv /p:Inputs="/check:VirtualStorport.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
자세한 내용은 정적 드라이버 검증 도구를 사용하여 드라이버에서 결함 찾기 및 정적 드라이버 검증 도구 명령(MSBuild)을 참조하세요.