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

  • Anonymous
    May 15, 2006
    w00t! look who's bloggin'! Finally all those pestering requests for dogfooding are paying off... ;)

  • Anonymous
    January 22, 2008
    Hi, I'm new to Driver Development, now I'm going to write Network Miniport Driver for Vista. Can guide me regarding this.... Thanks. I would suggest downloading the DDK and reading up on the Network Driver section of the DDK Docs.    -- Ari

  • Anonymous
    July 10, 2008
    tengo problemas con la red en el cluster de mis server 2003 diganme como puedo solucionar ete problema

  • Anonymous
    September 11, 2008
    What is the maximum ethernet packet size for NDIS 6.0 under Windows CE 6.0

  • Anonymous
    November 05, 2008
    Hi, I am interested in Learning how the NIDS 6 model works and how does it interface with protocol drivers, device drivers. Thanks You might want to start reading the NDIS 6.0 information on MSDN. -- Ari

  • Anonymous
    April 11, 2009
    Hi, 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! Frank.

  • Anonymous
    August 03, 2009
    I need to capture, in Windows Vista/Server, all the frames which run through the interfaces, including the ones between local applications and localhost(127.0.0.1) 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

  • Anonymous
    October 18, 2009
    my kids deleted  the Ethernet sofeware...need to replace it