Compartilhar via


!ndiskd.pendingnbls

A extensão !ndiskd.pendingnbls exibe NBLs pendentes (NET_BUFFER_LISTs) em trânsito.

!ndiskd.pendingnbls [-handle <x>] [-fullstack] [-verbosity <x>] 

Parâmetros

-manejar
Manipular um miniporto NDIS, filtrar ou abrir.

-fullstack
Mostra NBLs pendentes de toda a pilha associada ao identificador.

-verbosidade
Nível de detalhes a serem exibidos.

DLL

Ndiskd.dll

Exemplos

!ndiskd.pendingnbls pode ser passado pelo identificador de um miniporto NDIS, filtro ou aberto. A série de exemplos a seguir usa um identificador de miniporto. Para ver uma lista de todos os miniportos e seus minidrivers associados, execute a extensão !ndiskd.netadapter sem parâmetros. Na saída de exemplo a seguir, procure o Adaptador de Rede de Depuração do Microsoft Kernel, cujo identificador é ffffe00bc3f701a0. A alça do minidriver é ffffe00bc51b9ae0.

0: kd> !ndiskd.netadapter
    Driver             NetAdapter          Name                                 
    ffffe00bc6e12ae0   ffffe00bc6e4e1a0    Microsoft ISATAP Adapter #2
    ffffe00bc51b9ae0   ffffe00bc3f701a0    Microsoft Kernel Debug Network Adapter

Para ver as NBLs pendentes para um miniporto, defina um ponto de interrupção em SendNetBufferListsHandler do minidriver. Use o identificador do minidriver para executar o comando !ndiskd.minidriver -handle -handlers para ver uma lista de seus manipuladores e, em seguida, clique no link "bp" à direita do SendNetBufferListsHandler. Como alternativa, você pode inserir o comando bp-handle na linha de comando.

0: kd> !ndiskd.minidriver ffffe00bc51b9ae0 -handlers


HANDLERS

    NDIS Handler                           Function pointer   Symbol (if available)
    InitializeHandlerEx                    fffff80ae9618230  bp
    SetOptionsHandler                      fffff80ae9612800  bp
    HaltHandlerEx                          fffff80ae9618040  bp
    ShutdownHandlerEx                      fffff80ae96122c0  bp

    CheckForHangHandlerEx                  fffff80ae9612810  bp
    ResetHandlerEx                         fffff80ae9612f70  bp

    PauseHandler                           fffff80ae9618000  bp
    RestartHandler                         fffff80ae9618940  bp

    OidRequestHandler                      fffff80ae9611c90  bp
    CancelOidRequestHandler                fffff80ae96122c0  bp
    DirectOidRequestHandler                [None]
    CancelDirectOidRequestHandler          [None]
    DevicePnPEventNotifyHandler            fffff80ae96189a0  bp

    SendNetBufferListsHandler              fffff80ae9611870  bp
    ReturnNetBufferListsHandler            fffff80ae9611b50  bp
    CancelSendHandler                      fffff80ae96122c0  bp

Depois de definir o ponto de interrupção no SendNetBufferListsHandler, insira o comando g para permitir que o computador de destino debugee seja executado e atinja o ponto de interrupção.

0: kd> bp fffff80ae9611870
0: kd> g
Breakpoint 0 hit
fffff80a`e9611870 4053            push    rbx

Agora, depois de atingir o ponto de interrupção SendNetBufferListsHandler do minidriver, você poderá ver quaisquer NBLs pendentes para o miniporto inserindo o comando !ndiskd.pendingnbls -handle com o identificador do miniporto.

Nota O computador de destino de depuração neste exemplo estava carregando uma página da Web quando atingiu o ponto de interrupção, de modo que o tráfego estava fluindo pelo datapath do miniporto. Portanto, ele tinha uma NBL pendente para enviar. Mesmo depois de definir um ponto de interrupção em um ou mais manipuladores NBL para o minidriver, talvez você não veja NBLs pendentes se não houver nenhuma atividade no datapath.

0: kd> !ndiskd.pendingnbls ffffe00bc3f701a0

PHASE 1/3: Found 20 NBL pool(s).                 
PHASE 2/3: Found 342 freed NBL(s).                                    

    Pending Nbl        Currently held by                                        
    ffffe00bc5545c60   ffffe00bc3f701a0 - Microsoft Kernel Debug Network Adapter  [NetAdapter]                    
    

PHASE 3/3: Found 1 pending NBL(s) of 4817 total NBL(s).                      
Search complete.

Consulte também

Guia de design do driver de rede)

Referência de rede posterior e do Windows Vista

Depurando a pilha de rede

Extensões de NDIS (Ndiskd.dll)

!ndiskd.help

NET_BUFFER_LIST

!ndiskd.netadapter

!ndiskd.minidriver

bp, bu, bm (Definir ponto de interrupção)