!ndiskd.pendingnbls
Расширение !ndiskd.pendingnbls отображает ожидающие NBLs (NET_BUFFER_LISTs), передаваемые.
!ndiskd.pendingnbls [-handle <x>] [-fullstack] [-verbosity <x>]
Параметры
-ручка
Дескриптор минипорта, фильтра или открытия NDIS.
-fullstack
Отображает ожидающие NBL из всего стека, связанного с дескриптором.
-многословие
Уровень детализации для отображения.
DLL-библиотеки
Ndiskd.dll
Примеры
!ndiskd.pendingnbls можно передать дескриптор минипорта NDIS, фильтра или открытия. В следующем ряде примеров используется минипорт-дескриптор. Чтобы просмотреть список всех мини-портов и связанных с ними мини-накопителей, запустите расширение !ndiskd.netadapter без параметров. В следующем примере выходных данных найдите сетевой адаптер отладки ядра Майкрософт, дескриптор которого ffffe00bc3f701a0. Его дескриптор мини-driver является ffffe00bc51b9ae0.
0: kd> !ndiskd.netadapter
Driver NetAdapter Name
ffffe00bc6e12ae0 ffffe00bc6e4e1a0 Microsoft ISATAP Adapter #2
ffffe00bc51b9ae0 ffffe00bc3f701a0 Microsoft Kernel Debug Network Adapter
Чтобы просмотреть ожидающие NBLs для мини-порта, установите точку останова в его minidriver SendNetBufferListsHandler. Используйте дескриптор minidriver для запуска команды !ndiskd.minidriver -handle -handlers , чтобы просмотреть список его обработчиков, а затем щелкните ссылку "bp" справа от SendNetBufferListsHandler. Можно также ввести команду 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
Теперь, после нажатия точки останова minidriver SendNetBufferListsHandler, вы можете увидеть любые ожидающие NBLs для мини-порта, введя команду !ndiskd.pendingnbls -handle с дескриптором минипорта.
Обратите внимание , что целевой компьютер отладки в этом примере загружает веб-страницу при достижении точки останова, поэтому трафик проходит через путь к данным мини-порта. Таким образом, он имел ожидающий NBL для отправки. Даже после установки точки останова на одном или нескольких обработчиках NBL для мини-driver вы можете не видеть ожидающие NBL, если в пути данных не было действий.
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.
См. также
Руководство по проектированию сетевого драйвера