다음을 통해 공유


!ndiskd.nbllog

!ndiskd.nbllog 확장은 시스템의 모든 NBL(NET_BUFFER_LIST) 활동의 로그를 표시합니다.

!ndiskd.nbllog [-stacks] 

매개 변수

-스택
호출 스택을 포함합니다.

DLL

Ndiskd.dll

설명

Important!ndiskd.nbllog 를 사용하려면 디버기 대상 컴퓨터에서 NBL 추적을 사용하도록 설정해야 합니다. NBL 추적은 Windows의 모든 구성에서 기본적으로 사용하도록 설정되지 않습니다. NBL 추적을 사용하도록 설정하지 않으면 다음 코드 조각과 같이 !ndiskd에서 사용하도록 설정하는 방법에 대한 지침을 제공합니다.

0: kd> !ndiskd.nbllog
    This command requires NBL tracking to be enabled on the debugee target
    machine.  (By default, client operating systems have level 1, and servers
    have level 0).  To enable, set this REG_DWORD value to a nonzero value on
    the target machine and reboot the target machine:
    
    HKLM\SYSTEM\CurrentControlSet\Services\NDIS\Parameters ! TrackNblOwner
    Possible Values (features are cumulative)
    * 0:  Disable all tracking.
    * 1:  Track the most recent owner of each NBL (enables !ndiskd.pendingnbls)
    * 2:  Scan for leaks at runtime (use with StuckNblReaction)
    * 3:  Keep a full history of all activity (enables !ndiskd.nbl -log)
    * 4:  Take stack capture snapshots (enables !ndiskd.nbl -log -stacks)
    This command requires level 3 or higher.

NBL 로그는 시스템의 네트워크 트래픽을 표시합니다. !ndiskd.netreport 는 NBL 추적 로그를 구문 분석하여 이 네트워크 트래픽을 시각적으로 표시합니다. 따라서 NBL 추적을 사용하도록 설정 하지 않으면 !ndiskd.netreport 에서 이 정보를 표시할 수 없습니다.

예제

대상 디버기 머신에서 NBL 추적을 사용하도록 설정한 후 !ndiskd.nbllog 명령을 입력하여 시스템의 모든 NBL 트래픽 로그를 확인합니다. 아래 예제와 같이 매개 변수 없이 !ndiskd.nbllog를 실행하면 출력이 200개의 이벤트로 제한되며, -force 옵션을 사용하여 명령을 다시 실행하여 우회할 수 있습니다. 이 예제에서 출력의 중간은 간결하게 설명되었습니다.

0: kd> !ndiskd.nbllog
    NBLs               Processor           Event              Detail            
                                                                     
    ffffe00bc71453f0   CPU  0              Freed
    ffffe00bc7163b40   CPU  2              Allocated
    ffffe00bc7163b40   CPU  2              ProtocolSent       ffffe00bc5ac4880 - QoS Packet Scheduler-0000
    ffffe00bc7163b40   CPU  2              FilterSent         ffffe00bc5ac5c70 - WFP Native MAC Layer LightWeight Filter-0000
    ffffe00bc7163b40   CPU  2, IRQL=DPC    FilterSent         ffffe00bc3f701a0 - Microsoft Kernel Debug Network Adapter
    ffffe00bc7163b40   CPU  2, IRQL=DPC    SentToMiniport     ffffe00bc3f701a0 - Microsoft Kernel Debug Network Adapter
    ffffe00bc7163b40   CPU  0, IRQL=DPC    MiniportSendCompleted ffffe00bc5ac5c70 - WFP Native MAC Layer LightWeight Filter-0000
    ffffe00bc7163b40   CPU  0, IRQL=DPC    FilterSendCompleted ffffe00bc5ac4880 - QoS Packet Scheduler-0000
    ffffe00bc7163b40   CPU  0, IRQL=DPC    FilterSendCompleted send complete in NDIS, sorting to Opens
    ffffe00bc7163b40   CPU  0, IRQL=DPC    SendCompleted      ffffe00bc5ab7c10 - TCPIP6

...

    ffffe00bc6b469b0   CPU  2              Allocated
    ffffe00bc6b469b0   CPU  2              Freed
    ffffe00bc64a3690   CPU  2              Allocated
    ffffe00bc64a3690   CPU  2              ProtocolSent       ffffe00bc5ac4880 - QoS Packet Scheduler-0000
    ffffe00bc64a3690   CPU  2              FilterSent         ffffe00bc5ac5c70 - WFP Native MAC Layer LightWeight Filter-0000
    ffffe00bc64a3690   CPU  2, IRQL=DPC    FilterSent         ffffe00bc3f701a0 - Microsoft Kernel Debug Network Adapter
    ffffe00bc64a3690   CPU  2, IRQL=DPC    SentToMiniport     ffffe00bc3f701a0 - Microsoft Kernel Debug Network Adapter
    ffffe00bc3cf2d10   CPU  1              Allocated
    ffffe00bc7bc6030   CPU  1              Allocated
    ffffe00bc3cf2d10   CPU  1              ProtocolSent       ffffe00bc5ac4880 - QoS Packet Scheduler-0000

    Maximum of 200 events printed; quitting early.
    Rerun with the '-force' option to bypass this limit.

!ndiskd.nbllog결과를 해석하는 방법에 대한 자세한 설명은 NDIS 블로그에서 !ndiskd.nbl -log를 참조하세요.

참고 항목

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

Windows Vista 및 이후 네트워킹 참조

네트워크 스택 디버깅

NDIS 확장(Ndiskd.dll)

!ndiskd.help

NET_BUFFER_LIST

!ndiskd.nbl -log