다음을 통해 공유


NDIS(잠금 규칙 집합)

이러한 규칙을 사용하여 드라이버가 공유 리소스를 올바르게 관리하는지 확인합니다.

섹션 내용

항목 Description

Spinlock

SpinLock 규칙은 NDIS 스핀 잠금 인터페이스의 올바른 사용을 확인합니다. 이 규칙은 SpinLock이 잠금 해제된 상태일 때만 NdisAcquireSpinLock 에 대한 호출이 수행되도록 지정합니다. 또한 이 규칙은 미니포트 처리기 루틴이 종료되기 전에 SpinLock이 해제되어 있는지 확인합니다.

SpinLockBalanced

SpinLockBalanced 규칙은 SpinLock을 획득하는 함수에 대한 호출 수가 동일한 SpinLock을 해제하는 함수에 대한 호출 수와 같은지 확인합니다.

SpinLockDpr

SpinLockDpr 규칙은 NDIS 스핀 잠금 인터페이스의 올바른 사용을 확인합니다.

이 규칙은 스핀 잠금이 잠금 해제된 상태일 때만 NdisDprAcquireSpinLock 에 대한 호출이 수행되도록 지정합니다. 또한 이 규칙은 미니포트 처리기 루틴이 종료되기 전에 스핀 잠금이 해제되어 있는지 확인합니다.

SpinLockDprRelease

SpinLockDprRelease 규칙은 SpinLock이 "잠금 해제" 상태인 경우에만 NdisAcquireSpinLock 또는 NdisDprAcquireSpinLock에 대한 호출이 호출되는지 확인합니다. 또한 이 규칙은 미니포트 처리기 루틴을 종료하기 전에 SpinLock이 릴리스되었는지 확인합니다.

SpinLockRelease

SpinLockRelease 규칙은 드라이버가 스핀 잠금을 먼저 획득하지 않고 스핀 잠금(NdisReleaseSpinLock)을 해제하지 않도록 지정합니다.

잠금 규칙 집합을 선택하려면

  1. Microsoft Visual Studio에서 드라이버 프로젝트(.vcxProj)를 선택합니다. 드라이버 메뉴에서 정적 드라이버 검증 도구 시작...을 클릭합니다.

  2. 규칙 탭을 클릭합니다. 규칙 집합에서 잠금을 선택합니다.

    Visual Studio 개발자 명령 프롬프트 창에서 기본 규칙 집합을 선택하려면 /검사 옵션을 사용하여 Locking.sdv를 지정합니다. 예를 들면 다음과 같습니다.

    msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    자세한 내용은 정적 드라이버 검증 도구를 사용하여 드라이버에서 결함 찾기정적 드라이버 검증 도구 명령(MSBuild)을 참조하세요.