ロックの規則セット (NDIS)
これらの規則を使用して、ドライバーが共有リソースを正しく管理していることを確認します。
このセクションの内容
裁判官 | 説明 |
---|---|
SpinLock 規則は、NDIS スピン ロック インターフェイスの正しい使用を確認します。 この規則では、 NdisAcquireSpinLock への呼び出しは、SpinLock がロック解除状態の場合にのみ行われるよう指定します。 この規則では、ミニポート ハンドラー ルーチンが終了する前に SpinLock が解放されていることも確認します。 |
|
SpinLockBalanced ルールは、SpinLock を取得する関数の呼び出しの数が、同じ SpinLock を解放する関数の呼び出しの数と等しいことを確認します。 |
|
SpinLockDpr 規則は、NDIS スピン ロック インターフェイスの正しい使用を確認します。 この規則では、 NdisDprAcquireSpinLock への呼び出しは、SpinLock がロック解除状態の場合にのみ行われるよう指定します。 この規則では、ミニポート ハンドラー ルーチンが終了する前に Spin Lock が解放されていることも確認します。 |
|
SpinLockDprRelease ルールは、 NdisAcquireSpinLock または NdisDprAcquireSpinLock への呼び出しが、SpinLock が "ロック解除" 状態である場合にのみ呼び出されることを確認します。 この規則は、ミニポート ハンドラー ルーチンを終了する前に SpinLock がリリースされたことをチェックします。 |
|
SpinLockRelease ルールは、ドライバーが最初に取得せずにスピン ロック (NdisReleaseSpinLock) を解放しないように指定します。 |
Irql ルール セットをロックするには
Microsoft Visual Studio でドライバー プロジェクト (.vcxProj) を選択します。 [ドライバー] メニューから [静的ドライバー検証ツールの起動...] をクリックします。
[ルール] タブをクリックします。 [ルール セット] で、 [Locking] を選択します。
Visual Studio の開発者コマンド プロンプト ウィンドウから既定のルール セットを選択するには、/check オプションで Locking.sdv を指定します。 次に例を示します。
msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
詳細については、「静的ドライバー検証ツールを使用して、ドライバーの欠陥を検出する」と「静的ドライバー検証ツールコマンド (MSBuild)」を参照してください。