Goodbye
Microsoft is retiring this blogging platform, so the NDIS blog will be removed soon. If you have any articles that you need to reference, please save them locally.
View ArticleMy favorite perfcounters
… are the NDIS counters. Like you even had to ask. We love performance counters on the Windows Networking team. We routinely use performance counters to monitor & diagnose issues. Nearly every...
View ArticleIt’s perfcounter week on the NDIS blog!
Actually every week is perfcounter week. Performance counters are an essential tool for devs, ops, … and marketing. Yet they’re often not well understood. Fortunately, under the hood, performance...
View ArticleA new video on NDIS debugging
The Defrag Tools show was kind enough to host me for a quick chat about debugging NDIS drivers. Check it out!
View ArticleEliminating empty handlers
Don’t come back empty-handlered NDIS drivers have several opportunities to supply advanced functionality through optional handlers. But if you don’t want the advanced functionality, you don’t need to...
View ArticleMapping from NDIS OIDs to WMI classes
In which we write a PowerShell script, install the WDK, attach a kernel debugger, reverse-engineer the OS, and prove Goldbach’s conjecture We’ve previously talked about how to rummage through all the...
View ArticleUsing C++ in an NDIS driver
Are NDIS drivers allowed to use C++? The first question is easy: can NDIS drivers be written in C++? The answer: yes. In this case, NDIS doesn’t have any official stance on C++, so we just fall back...
View ArticleUsing WDF in an NDIS driver
Can, Should, and How? WDF is a framework that makes it easier to write Windows drivers. NDIS is a framework for writing low-level Windows network drivers. The purposes of these frameworks overlap a...
View ArticleThe NDIS API naming convention
NdisFWhat? Your secret decoder ring to NDIS functions The first time you come across NDIS, you might find yourself lost in the enormous number of NDIS APIs, OIDs, status codes, and data structures....
View ArticleUsing the checked version of NDIS.SYS
I assert that this is a good way to find bugs Installing the checked version of the operating system is an effective technique to quickly find bugs in your network driver. If you’re not familiar with...
View ArticleNdisFRegisterFilterDriver fails… now what?
Decoding the error codes “I compiled my NDIS filter driver, but NdisFRegisterFilterDriver fails in my DriverEntry function. Now what?” Here’s a table listing common problems and fixes. Rows are...
View ArticleKernel debugging over the network
What just happened to my NIC?!We’ve previously published some tips on how to use the debugger to fix your NDIS miniport driver. But today we’re going to turn the tables and talk about how the debugger...
View ArticleWhy is there a redundant Restart-NetAdapter cmdlet?
Sometimes you can’t just Enable your way out of a Disable mess Windows 8 and Windows Server 2012 include a whole set of new PowerShell cmdlets to manage the network stack. These cmdlets include...
View ArticleThanks for your help making Windows great!
Really, it’s all about self-interest Remember way back when you first set up your new computer? Windows probably prompted you to “join the Customer Experience Improvement Program”. For those of you...
View ArticleMaking minidumps more useful
Miniport: meet minidump Minidumps are a small (~100kb) record of a crash. As their name suggests, they’re optimized for small size… at the expense of usefulness. Minidumps include just enough...
View ArticleMapping from NDIS OIDs to WMI classes
In which we write a PowerShell script, install the WDK, attach a kernel debugger, reverse-engineer the OS, and prove Goldbach’s conjectureWe’ve previously talked about how to rummage through all the...
View ArticleUsing C++ in an NDIS driver
Are NDIS drivers allowed to use C++?The first question is easy: can NDIS drivers be written in C++? The answer: yes. In this case, NDIS doesn’t have any official stance on C++, so we just fall back...
View ArticleUsing WDF in an NDIS driver
Can, Should, and How?WDF is a framework that makes it easier to write Windows drivers. NDIS is a framework for writing low-level Windows network drivers. The purposes of these frameworks overlap a...
View ArticleThe NDIS API naming convention
NdisFWhat? Your secret decoder ring to NDIS functionsThe first time you come across NDIS, you might find yourself lost in the enormous number of NDIS APIs, OIDs, status codes, and data structures....
View ArticleUsing the checked version of NDIS.SYS
I assert that this is a good way to find bugsInstalling the checked version of the operating system is an effective technique to quickly find bugs in your network driver. If you’re not familiar with...
View Article