Network Adapter WDF Class Extension (NetAdapterCx)
Some information in this topic relates to prereleased product, which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
NetAdapterCx is preview only in Windows 10, version 1809.
Starting in Windows 10, version 1703, the Windows Driver Kit (WDK) includes a Network Adapter WDF Class Extension module (NetAdapterCx) that enables you to write a KMDF-based client driver for a Network Interface Controller (NIC). NetAdapterCx gives you the power and flexibility of WDF and the networking performance of NDIS, and makes it easy to write a driver for your NIC.
In previous versions of Windows, WDF and NDIS had individual advantages, but did not interoperate well. The only way to write a NIC driver was to write an NDIS miniport driver. To use WDF in an NDIS miniport driver, you had to write extra code in your driver, and even then, you only had access to a small subset of WDF functionality.
With the NetAdapterCx model, conversely, you write a real WDF driver for your NIC. This means that your NetAdapterCx driver has access to full WDF functionality, as well as networking-specific APIs and I/O support from the NetAdapter class extension. As shown in the block diagram below, NetAdapterCx still works behind the scenes with NDIS, but it handles all the interaction with NDIS on your behalf.
To watch a video that discusses the benefits of using NetAdapterCx, see the Network Adapter Class Extension: Overview video on Channel 9.
To learn how to port an NDIS 6.x miniport driver to the NetAdapterCx NIC driver model, see Porting NDIS miniport drivers to NetAdapterCx.
To start working right away with driver samples on GitHub, clone our NetAdapter-Cx-Driver-Samples repo.
To see the source code for NetAdapterCx itself, or perform step-through debugging, see our Network-Adapter-Class-Extension repo on GitHub.
If you would like to work with Microsoft as you develop a NetAdapterCx client driver, or have feedback on the class extension, please send us an email.
To watch a video that discusses the future roadmap and collaboration opportunities, see the Network Adapter Class Extension: Roadmap and Collaboration video on Channel 9.
This section contains the following topics:
- Porting NDIS miniport drivers to NetAdapterCx
- Building a NetAdapterCx client driver
- INF files for NetAdapterCx client drivers
- Managing the lifetime of objects in NetAdapterCx
- Accessing configuration information
- Handling control requests
- Debugging a NetAdapterCx client driver
- Transferring network data
- NetAdapterCx receive side scaling (RSS)
- Configuring power management
- NDIS-WDF function equivalents
- NetAdapterCx limitations
- Mobile Broadband (MBB) WDF class extension (MBBCx)
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.