!ndiskd.ndisrwlock
!ndiskd.ndisrwlock 拡張コマンドは、NDIS_RW_LOCK_EX ロック構造体に関する情報を表示します。
!ndiskd.ndisrwlock -handle <x>
パラメーター
ハンドル
必須。 ロック構造体のハンドル。
DLL
Ndiskd.dll
例
独自のRWロックを作成し、それを検査したい場合は、!ndiskd.ndisrwlock 拡張コマンドを使用します。 RW ロックのハンドルを取得するには、poi コマンドを使用して、ドライバーのロックのアドレスを逆参照します。 次のスニペットは、例の時点で TCIPIP プロトコルが使用していたロックを見る方法を示しています。
0: kd> !ndiskd.ndisrwlock poi(tcpip!gAleHashtableLock)
NDIS READ-WRITE LOCK
Allocated by [NDIS generic object]
Exclusive access Not acquired
Read-only access 0 references
Set a breakpoint on acquire/release
この RW ロックを使用しているドライバーを観察するには、RW ロックの詳細の下部にある "Set a breakpoint on acquire/release" リンクをクリックします。 ブレークポイントを設定したら、g コマンドを入力して、デバッグ対象マシンをブレークポイントでヒットさせます。
0: kd> ba r4 ffffe00bc3fc22f8
0: kd> g
Breakpoint 0 hit
nt!KeTestSpinLock+0x3:
fffff802`0d69eb53 4885c0 test rax,rax
同じ !ndiskd.ndisrwlock コマンドを再実行して、この RW ロックが 1 つの読み取り専用アクセス参照を持っていることを確認します。
0: kd> !ndiskd.ndisrwlock poi(tcpip!gAleHashtableLock)
NDIS READ-WRITE LOCK
Allocated by [NDIS generic object]
Exclusive access Not acquired
Read-only access 1 reference
Set a breakpoint on acquire/release