The NDIS 6.0 Driver Model

NDIS 6.0 was introduced to the independent hardware vendor (IHV) and developer community at last year’s WinHEC. It brings the promise of greater performance, improved manageability, reduced complexity for NDIS miniports, and simpler models for writing intermediate and filter drivers. Are you curious how much of the promise has been realized?


At WinHEC this year, I’ll demonstrate network adapters which maximize network throughput with lower CPU utilization—all by moving to the NDIS 6.0 model. NDIS 6.0 miniport drivers have demonstrated 20% performance improvements over NDIS 5.1 miniport drivers!


Here are some examples of the feedback we’ve heard from some of our partners inside Microsoft, citing how NDIS 6.0 has made a difference in their scenarios.


Example 1: Pacer, the packet scheduling and shaping component of the Policy-based Quality of Service feature

The old Windows Packet Scheduler (PSched) was originally an NDIS 5.0 intermediate miniport. The new Windows Packet Scheduler (Pacer) uses the NDIS 6.0 lightweight filter model, resulting in better performance with lower overhead. In previous releases, enabling PSched in passive mode resulted in a 10% increase in CPU utilization. On Windows Vista, by contrast, enabling Pacer in passive mode results in an increase of only 0.5% in CPU utilization.


Example 2: Network Load Balancing (NLB)

The NLB development team told us that porting NLB from the intermediate miniport model to the lightweight filter model resulted in simpler code that was much easier to debug.


Example 3: Media Streaming and Interrupt Moderation

As the Quality of Service development team can attest, the OIDs for enabling and  disabling interrupt moderation make a big difference in accurately measuring available bandwidth, which is key for smoother media streaming in home networks.


Want to see the improvements for yourself? Drop by the WinHEC Hardware showcase at the NDIS 6.0 booth to learn more about what the NDIS 6.0 model has to offer. Have questions for us on how the model works? Leave us a comment in response to this posting.


Aarti Bharathan

Program Manager, Core Networking

Comments (8)

  1. Vatsan says:

    w00t! look who’s bloggin’! Finally all those pestering requests for dogfooding are paying off… 😉

  2. Michael Richard S says:


    I’m new to Driver Development, now I’m going to write Network Miniport Driver for Vista.

    Can guide me regarding this….


    I would suggest downloading the DDK and reading up on the Network Driver section of the DDK Docs.

       — Ari

  3. erik says:

    tengo problemas con la red en el cluster de mis server 2003

    diganme como puedo solucionar ete problema

  4. greg White says:

    What is the maximum ethernet packet size for NDIS 6.0 under Windows CE 6.0

  5. Gagan says:


    I am interested in Learning how the NIDS 6 model works and how does it interface with protocol drivers, device drivers.


    You might want to start reading the NDIS 6.0 information on MSDN.

    — Ari

  6. Frank says:


    I used to take Ndisprot and modify it to act as an 802.11 NIC driver for the need of my own wifi-specific application. Now my application extends its usage scenarios to WiMAX networks so I need to upgrade original NDIS protocol driver to bind a new WiMAX miniport driver. My problem is: can I install one single NDIS protocol driver to bind both WiFi and WiMAX miniport driver? Original Ndisprot driver is NDIS verion 5.x, and my application is running on Windows XP. Should I port it to NDIS v6.0? Please provide any suggestion and code sample if possible. Thanks!


  7. Gustavo says:

    I need to capture, in Windows Vista/Server, all the frames which run

    through the interfaces, including the ones between local applications

    and localhost( as well.

    Despite the fact that these aforementioned frames are impossible to

    capture with a sniffer, I have been trying to make them work in different

    ways. After several attempts, I used firewall API by WinXP and it

    worked. However, Windows Vista/Server is the OS I need to use for my purpose.

    It is said that Windows Vista has Windows Filtering Platform (WPF).

    Nevertheless, it is thought that this WPF does not support MAC-level

    filtering. Given that, I assume that capturing all Ethernet frames

    will be an impossible thing to achieve and it may cause some trouble

    because I need to capture all frames from Data Link on.

    Summing up, I would like to ask you if there is anybody who knows

    which technology method or device will work or if it is possible to do

    it with a NDIS network lightweight filter driver?

    Regards, Gustavo

  8. dee jordan says:

    my kids deleted  the Ethernet sofeware…need to replace it