Episode

Defrag Tools #175 - Debugging the Network Stack

In this episode of Defrag Tools, Chad Beeder is joined by Jeffrey Tippet from the Windows Networking team to talk about how to debug networking problems in NDIS (Network Driver Interface Specification) using the !ndiskd debugger extension in WinDbg.

Resources:
The NDIS Blog

Timeline:
[00:00] Introductions
[01:10] What is NDIS (Network Driver Interface Specification)
[03:11] Common problems encountered by the Networking Team. (Bug Check 0x9F DRIVER_POWER_STATE_FAILURE, Bug Check 0x133 DPC_WATCHDOG_VIOLATION)
[06:27] Introducing the !ndiskd debugger extension. Start with !ndiskd.help
[10:27] !ndiskd.netreport gives you a Network Debug Report including graphical overview of the network configuration
[18:23] !ndiskd.netreport -verbose takes much longer to run, but gives a lot more detail including animations of how many packets are going over each adapter
[22:58] To enable the logging of recent network traffic, and get the animations in the netreport, enable NBL Logging by setting a registry key (documented here).
[25:20] Wi-Fi can act like an access point in some cases (i.e. Wi-Fi Direct). How this shows up in the Network .
[27:30] The other tabs on the report: Useful if you need to send the report to someone else.
[31:34] DRIVER_POWER_STATE_FAILURE debugging tips: Use !ndiskd.oid to see which network OIDs (networking requests) are pending. One of these may be the power request which is holding up the network stack.
[34:40] DPC_WATCHDOG_VIOLATION debugging tips
[37:15] Comments/questions? Email us at defragtools@microsoft.com