NDIS 扩展 (Ndiskd.dll)

本部分介绍 !ndiskd 中提供的命令,它是调试 NDIS(网络接口规范)驱动程序非常有用的调试器扩展。 这些命令使网络驱动程序开发人员能够了解 Windows 网络堆栈的更大情况及其驱动程序与其交互的方式。 使用 !ndiskd,可以看到所有网络适配器的状态(!ndiskd.netadapter)、计算机的网络堆栈(!ndiskd.netreport)、网络适配器(!ndiskd.nbllog)的流量日志,或所有挂起的 OID 请求的列表(!ndiskd.oid)。

可以在Ndiskd.dll中找到这些命令。 若要加载符号,请在调试器命令窗口中输入 .reload /f ndis.sys 。 若要确认已成功加载的符号,请使用 !lmi ndis 扩展并查找短语“已成功加载”到底部。 输出应类似于以下示例:

0: kd> !lmi ndis
Loaded Module Info: [ndis] 
         Module: ndis
   Base Address: fffff80174570000
     Image Name: ndis.sys
   Machine Type: 34404 (X64)
     Time Stamp: 938f9f4e (This is a reproducible build file hash, not a true timestamp)
           Size: 16f000
       CheckSum: 167a05
Characteristics: 22  
Debug Data Dirs: Type  Size     VA  Pointer
             CODEVIEW    21, d4060,   d2c60 RSDS - GUID: {9CC82DBE-96A0-773D-29E0-62B698C4C3A8}
               Age: 1, Pdb: ndis.pdb
                 POGO   988, d4084,   d2c84 [Data not mapped]
                REPRO    24, d4a0c,   d360c Reproducible build[Data not mapped]
     Image Type: MEMORY   - Image read successfully from loaded memory.
    Symbol Type: PDB      - Symbols loaded successfully from symbol server.
                 C:\ProgramData\Dbg\sym\ndis.pdb\9CC82DBE96A0773D29E062B698C4C3A81\ndis.pdb
    Load Report: public symbols , not source indexed 
                 C:\ProgramData\Dbg\sym\ndis.pdb\9CC82DBE96A0773D29E062B698C4C3A81\ndis.pdb

!ndiskd 中的许多扩展命令在调试器窗口中显示的结果中包含超链接。 这些超链接的文本已保留在提供的示例中,以说明在调试者计算机上运行命令时将看到的内容的确切格式。 其中一些示例还显式引用了单击这些链接,以便你可以了解典型的使用流,不过这些示例还提供每个命令的备用命令行形式。

通用参数

所有 !ndiskd 命令都支持以下泛型参数。

-详细
显示其他详细信息。

-简洁
取消某些样本输出。

-静态的
取消某些交互式输出。

-dml 0|1
控制是否启用 DML(调试器标记语言)输出。

-unicode 0|1
控制是否允许 Unicode 字符输出。

-indent N
每级缩进使用 N 个空格。

-力
替代对远程数据理智的一些安全检查。

-tracedata
显示用于调试 !ndiskd 本身的详细跟踪消息。

Net Adapter、NDIS 驱动程序和常规命令

以下命令显示与网络堆栈关联的计算机网络适配器、网络驱动程序和常规命令的相关信息(例如 rcvqueues、打开、筛选器、OID 和 RW 锁)。

NET_BUFFER_LIST和NET_BUFFER命令

以下命令显示与NET_BUFFER_LISTNET_BUFFER结构相关的信息。

NetAdapterCx 命令

以下命令显示与网络适配器 WDF 类扩展 NetAdapterCx 及其关联结构、 NET_RING_BUFFERNET_PACKET相关的信息。

网络接口命令

以下命令显示与网络接口相关的信息。

NDIS_PACKET命令

以下命令显示有关 NDIS_PACKET 结构的信息。 这些扩展适用于旧版 NDIS 5.x 驱动程序。 NDIS_PACKET 结构及其关联的体系结构已弃用。

CoNDIS 命令

以下命令显示有关 面向连接的 NDIS 连接的信息。

NDIS 调试命令

以下命令显示与 NDIS refcount、事件日志、堆栈跟踪和调试跟踪相关的信息。

WDI 命令

以下命令显示有关 WDI 微型端口驱动程序的信息。

NDIS 和 !ndiskd 信息命令

以下命令显示有关NDIS.sys和ndiskd.dll的信息。

其他命令

有关为 Windows Vista 及更高版本设计 NDIS 驱动程序的详细信息,请参阅 网络驱动程序设计指南

有关适用于 Windows Vista 及更高版本的 NDIS 驱动程序参考的详细信息,请参阅 Windows Vista 和更高版本的网络参考

有关使用 !ndiskd 调试器命令调试网络堆栈的演示,请参阅 调试网络堆栈 通道 9 视频。