次の方法で共有


!ndiskd.ndisrwlock

!ndiskd.ndisrwlock 拡張コマンドは、NDIS_RW_LOCK_EX ロック構造体に関する情報を表示します。

!ndiskd.ndisrwlock -handle <x>

パラメーター

-handle
必須。 ロック構造体のハンドル。

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

関連項目

ネットワーク ドライバー設計ガイド

Windows Vista 以降のネットワーク リファレンス

ネットワークスタックのデバッグ

NDIS 拡張コマンド (Ndiskd.dll)

!ndiskd.help

NDIS_RW_LOCK_EX