!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 锁详细信息底部的“在获取/释放时设置断点”链接。 设置断点后,输入 g 命令,让调试对象计算机运行并达到断点。
0: kd> ba r4 ffffe00bc3fc22f8
0: kd> g
Breakpoint 0 hit
nt!KeTestSpinLock+0x3:
fffff802`0d69eb53 4885c0 test rax,rax
现在,可以重新运行相同的 !ndiskd.ndisrwlock 命令,以查看此 RW 锁是否具有一个只读访问引用。
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