The NDIS blog

Goodbye

Microsoft is retiring this blogging platform, so the NDIS blog will be removed soon. If you have any...

Date: 01/07/2019

My favorite perfcounters

… are the NDIS counters. Like you even had to ask.We love performance counters on the Windows...

Date: 06/06/2017

It’s perfcounter week on the NDIS blog!

Actually every week is perfcounter week.Performance counters are an essential tool for devs, ops, …...

Date: 06/05/2017

A new video on NDIS debugging

The Defrag Tools show was kind enough to host me for a quick chat about debugging NDIS drivers....

Date: 03/21/2017

Eliminating empty handlers

Don’t come back empty-handlered NDIS drivers have several opportunities to supply advanced...

Date: 02/13/2017

Mapping from NDIS OIDs to WMI classes

In which we write a PowerShell script, install the WDK, attach a kernel debugger, reverse-engineer...

Date: 03/21/2015

Using C++ in an NDIS driver

Are NDIS drivers allowed to use C++? The first question is easy: can NDIS drivers be written in...

Date: 07/27/2014

Using WDF in an NDIS driver

Can, Should, and How? WDF is a framework that makes it easier to write Windows drivers.  NDIS is a...

Date: 07/20/2014

The NDIS API naming convention

NdisFWhat?  Your secret decoder ring to NDIS functions The first time you come across NDIS, you...

Date: 06/20/2014

Using 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...

Date: 06/16/2014

NdisFRegisterFilterDriver fails… now what?

Decoding the error codes “I compiled my NDIS filter driver, but NdisFRegisterFilterDriver fails in...

Date: 03/20/2014

Kernel debugging over the network

What just happened to my NIC?! We’ve previously published some tips on how to use the debugger to...

Date: 03/10/2014

Why 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...

Date: 01/31/2014

Thanks for your help making Windows great!

Really, it’s all about self-interest Remember way back when you first set up your new computer?...

Date: 01/31/2014

Making minidumps more useful

Miniport: meet minidump Minidumps are a small (~100kb) record of a crash.  As their name suggests,...

Date: 01/08/2014

Summary of packet-tracking techniques

Tracking the packet tracking We just covered a couple ways to track packets in the kernel debugger....

Date: 12/27/2013

!ndiskd.nbl -log

All your NBL are belong to !ndiskd Last time we talked about !ndiskd.pendingnbls.  This command...

Date: 12/27/2013

!ndiskd.pendingnbls

I’ve got your NBLs right here The most common issue we see in NDIS drivers is a “lost packet”.  You...

Date: 12/20/2013

WMI events

Smarter than polling Suppose you want to know if a network adapter is connected.  If you read our...

Date: 06/29/2011

Exploring NDIS’s WMI classes

Getting fancy with PowerShell and WMI Last time we got our feet wet with a simple PowerShell script...

Date: 04/06/2011

TMF download page

Are you targeting Windows 8 or Windows Server 2012? You don't need anything from here! These...

Date: 04/06/2011

WPP and KD

Industrial-strength tracing in an industrial-strength debugger Last time we talked about controlling...

Date: 04/06/2011

Diagnostics with WPP

Industrial-strength tracing WPP is similar to DbgPrint.  In fact, for NDIS.SYS, WPP and DbgPrint...

Date: 04/06/2011

Diagnostics with Event Viewer

Tracing made easy Starting with Windows 7 and Windows Server 2008 R2, NDIS can be configured to emit...

Date: 04/06/2011

Diagnostics tools in NDIS

Evolving beyond DbgPrint I'd like to take a break from our series on WMI (don't worry -- more WMI is...

Date: 04/06/2011

PWN* your network adapter

*PWN = PowerShell, WMI, and NDIS WMI is frequently misunderstood.   WMI is a large collection of...

Date: 12/15/2010

Debugging with NDISKD

Chapter three of a beginner’s guide to debugging with NDISKD In Part 1 of the series, we set up a...

Date: 08/18/2010

NDISKD and !miniport

The second installment of a beginner’s guide to debugging with NDISKD Last time we set up the...

Date: 03/11/2010

Getting started with NDISKD

Part 1 of a beginner’s guide to debugging with NDISKD If you haven’t already, grab the updated WDK...

Date: 03/05/2010

[Re]Introducing NDISKD

Over a decade of making NDIS developers dangerous Today we released a new version of the WDK.  This...

Date: 03/01/2010

The difference between a miniport and a miniport driver

A grammatical kinship between NDIS and tennis If you've ever programmed a WDM driver, you're...

Date: 02/23/2010

Removing a non-removable device

A surprise indeed From time to time, miniport authors ask us whether they really have to support...

Date: 02/17/2010

Simplifying your OID request handler

One request at a time, please While we have lots of documentation on MSDN, occasionally the...

Date: 02/09/2010

The NDIS Blog: We’re back!

Now with witty subtitles Lately things have been quiet on the NDIS blog.  But that’s about to...

Date: 02/09/2010

How to run NDISTest outside the DTM

The DTM that shipped in the Windows Vista RTM timeframe contains two versions of the NDISTest tool,...

Date: 02/23/2007

What causes a bug check 0xD1 (IRQL_NOT_LESS_OR_EQUAL)

The MSDN document summarizes the cause for the D1 (IRQL_NOT_LESS_OR_EQUAL) pretty well, for people...

Date: 11/04/2006

Troubleshoot a Windows bluescreen, a.k.a bugcheck, a.k.a blue screen of death

I have read a lot of posts in multiple forums on the internet where people ask "My machine keeps...

Date: 10/26/2006

Welcome to the NDIS and NDISTest blog

Welcome to the NDIS and NDISTest blog... we are just getting started so be patient. We want this...

Date: 07/26/2006