다음을 통해 공유


!ndiskd.pendingnbls

!ndiskd.pendingnbls 확장은 전송 중인 보류 중인 NCL(NET_BUFFER_LISTs)을 표시합니다.

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

매개 변수

-처리
NDIS 미니포트, 필터 또는 열기 핸들입니다.

-fullstack
핸들과 연결된 전체 스택에서 보류 중인 NBL을 표시합니다.

-세부 정보 표시
표시할 세부 정보 수준입니다.

DLL

Ndiskd.dll

예제

!ndiskd.pendingnbls는 NDIS 미니포트, 필터 또는 열기 핸들을 전달할 수 있습니다. 다음 일련의 예제에서는 미니포트 핸들을 사용합니다. 모든 미니포트 및 해당 미니 드라이버의 목록을 보려면 매개 변수 없이 !ndiskd.netadapter 확장을 실행합니다. 다음 예제 출력에서 핸들이 ffffe00bc3f701a0인 Microsoft 커널 디버그 네트워크 어댑터를 찾습니다. 미니 드라이버의 핸들은 ffffe00bc51b9ae0입니다.

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

미니포트에 대한 보류 중인 NCL을 보려면 미니 드라이버의 SendNetBufferListsHandler에서 중단점을 설정합니다. 미니 드라이버의 핸들을 사용하여 !ndiskd.minidriver -handle -handlers 명령을 실행하여 처리기 목록을 표시한 다음 SendNetBufferListsHandler 오른쪽에 있는 "bp" 링크를 클릭합니다. 또는 명령줄에서 bp -handle 명령을 입력할 수 있습니다.

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

SendNetBufferListsHandler에서 중단점을 설정한 후 g 명령을 입력하여 디버기 대상 컴퓨터가 실행되고 중단점에 도달할 수 있도록 합니다.

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

이제 미니 드라이버의 SendNetBufferListsHandler 중단점에 도달한 후 미니포트의 핸들로 !ndiskd.pendingnbls -handle 명령을 입력하여 미니포트에 대해 보류 중인 NCL을 볼 수 있습니다.

예제의 디버지 대상 컴퓨터는 중단점에 도달했을 때 웹 페이지를 로드하고 있었기 때문에 트래픽이 미니포트의 데이터 경로를 통해 흐르고 있었습니다. 따라서 NBL을 보낼 보류 중이 있었습니다. 미니 드라이버에 대한 하나 이상의 NBL 처리기에 중단점을 설정한 후에도 데이터 경로에 활동이 없는 경우 보류 중인 NCL이 표시되지 않을 수 있습니다.

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.

참고 항목

네트워크 드라이버 디자인 가이드

Windows Vista 및 이후 네트워킹 참조

네트워크 스택 디버깅

NDIS 확장(Ndiskd.dll)

!ndiskd.help

NET_BUFFER_LIST

!ndiskd.netadapter

!ndiskd.minidriver

bp, bu, bm(중단점 설정)