!ndiskd.ndisrwlock
A extensão !ndiskd.ndisrwlock exibe informações sobre uma estrutura de bloqueio NDIS_RW_LOCK_EX.
!ndiskd.ndisrwlock -handle <x>
Parâmetros
-manejar
Obrigatória. Identificador da estrutura de bloqueio.
DLL
Ndiskd.dll
Exemplos
Use a extensão !ndiskd.ndisrwlock se criar seu próprio bloqueio RW e quiser inspecioná-lo. Para obter o identificador de um bloqueio RW, use o comando poi para desreferenciar o endereço do bloqueio do driver. O trecho a seguir mostra como examinar um bloqueio que o protocolo TCIPIP estava usando no momento do exemplo.
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
Para observar o driver usando este bloqueio RW, clique no link "Definir um ponto de interrupção na aquisição/liberação" na parte inferior dos detalhes do bloqueio RW. Depois de definir o ponto de interrupção, digite o comando g para permitir que a máquina de depuração seja executada e chegue no ponto de interrupção.
0: kd> ba r4 ffffe00bc3fc22f8
0: kd> g
Breakpoint 0 hit
nt!KeTestSpinLock+0x3:
fffff802`0d69eb53 4885c0 test rax,rax
Agora você pode executar novamente o mesmo comando !ndiskd.ndisrwlock para ver se esse bloqueio RW possui uma referência de acesso no modo somente leitura.
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
Confira também
Guia de design para driver de rede