!ndiskd.netreport

!ndiskd.netreport 扩展生成整个网络堆栈的可视报表。 报表 !ndiskd.netreport 生成是一个 HTML 文件,它将为你提供指向其位置的链接。 HTML 文件包含有关网络堆栈的详细信息,因此,如果需要共享它进行分析,可以通过电子邮件发送它,而不必发送大型故障转储文件。

!ndiskd.netreport [-outputpath <str>] [-jsononly] 

参数

-outputpath
指定写入报表文件的位置。

-jsononly
仅写入原始数据,无 HTML。

DLL

Ndiskd.dll

例子

运行 !ndiskd.netreport 扩展以绘制网络堆栈的框图。

1: kd> !ndiskd.netreport


NETWORK STACK REPORT


    Want more stuff?  Rerun with the -verbose flag
                                                                                            

    Report was saved to C:\Users\******\AppData\Local\Temp\NKDFE9F.html
    View the report                        Send in email

单击底部的“查看报表”链接以查看生成的报表。 下图显示了从故障转储文件生成的净报表。 每个垂直堆栈都是一个网络适配器,细分为显示堆栈组件的层。 每个框的颜色都是通过对组件名称进行哈希处理生成的,这意味着每次运行报表时,相同的组件将以相同的颜色呈现。 这意味着,如果在调试某个问题时,可以轻松选取特定的驱动程序或适配器。

从故障转储文件生成的网络调试报告的屏幕截图。

相比之下,下图显示了从活动系统而不是故障转储文件生成的净报表。 请注意,HTML 页面底部还有两个选项用于“显示数据流”和“模拟数据包”,并且报表顶部有第四个选项卡用于“数据流”。出现这些选项是因为调试者计算机已启用 NBL 跟踪,这样 !ndiskd.netreport 分析 NBL 跟踪日志以直观显示信息。 如果未打开 NBL 跟踪,这些选项将不会显示。 有关 NBL 跟踪和 NBL 日志的详细信息,请参阅 !ndiskd.nbllog

通过选中“显示数据流”框,可以看到数据流的路径。 通过选中“模拟数据包”框,可以看到动态圆圈向上和向下移动数据流路径。 每个圆表示网络数据包。

从活动系统生成的网络调试报告的屏幕截图。

活动系统中的第二个示例还显示了与第一个示例的另一个区别,该示例使用了故障转储文件。 第二个示例中的目标调试者计算机已预配用于通过网络进行内核调试,因此可以看到堆栈上的网络适配器与数据流是Microsoft内核调试网络适配器。 除非已在调试者计算机上启用内核调试,否则此适配器通常处于隐藏状态。 实际上,内核调试网络适配器已为调试会话保留计算机的以太网适配器,因此流量通过以太网流动。

能够可视化网络堆栈并查看流量流动的位置,使你能够快速确定问题的位置。 这对于虚拟交换机或服务器尤其有用,这些交换机或服务器的网络关系图比前面的示例更为复杂。 例如,在使用 NIC 组合的 Windows Server 上,可以看到多个网络堆栈是否相互交叉以平衡流量负载,并确定一个堆栈底部是否存在影响另一个堆栈的问题。 若要查看显示此情况的网络调试报告的示例,请参阅 “调试网络堆栈”。 有关 NIC 组合的详细信息,请参阅 使用 NIC 组合实现网络子系统性能

!ndiskd.netreport 还具有系统、摘要和数据流页面顶部的其他选项卡(如果适用)。 这些选项卡包含有关网络堆栈状态的进一步有用信息。 下图显示了“摘要”选项卡下的“网络接口”选项卡。通过此选项卡中的表,可以查看有关系统中网络接口的名称和标识符的详细信息。

网络调试报告中“网络接口”选项卡的屏幕截图。

如果在目标系统上启用了 NBL 跟踪,则会出现“数据流”选项卡,其中显示了一个流量事件表以及每个事件的详细信息。 下图显示了前面所述的第二个示例调试报告中活动系统中的“数据流”选项卡。

网络调试报表中“数据流”选项卡的屏幕截图。

另请参阅

网络驱动程序设计指南

Windows Vista 和更高版本的网络参考

调试网络堆栈

NDIS 扩展 (Ndiskd.dll)

!ndiskd.help

!ndiskd.nbllog

使用 NIC 组合实现网络子系统性能