!ndiskd.ndisrwlock
Расширение !ndiskd.ndisrwlock отображает сведения о структуре блокировки NDIS_RW_LOCK_EX .
!ndiskd.ndisrwlock -handle <x>
Параметры
-ручка
Обязательный. Дескриптор структуры блокировки.
DLL-библиотеки
Ndiskd.dll
Примеры
Используйте расширение !ndiskd.ndisrwlock, если вы создаете собственную блокировку RW и хотите проверить ее. Чтобы получить дескриптор блокировки 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
См. также
Руководство по проектированию сетевого драйвера