Roadmap for Developing NDIS Miniport Drivers
To create a Network Driver Interface Specification (NDIS) miniport driver package, follow these steps:
Step 1: Learn about Windows architecture and drivers.
You must understand the fundamentals of how drivers work in Windows operating systems. Knowing the fundamentals will help you make appropriate design decisions and let you streamline your development process. For more information about driver fundamentals, see Concepts for all driver developers.
Step 2: Learn about NDIS.
For general information about NDIS and NDIS drivers, see the following topics:
Windows Network Architecture and the OSI Model
Step 3: Determine additional Windows driver design decisions.
For more information about how to make additional Windows design decisions, see Creating Reliable Kernel-Mode Drivers, Programming Issues for 64-Bit Drivers, and Creating International INF Files.
Step 4: Learn about the Windows driver build, test, and debug processes and tools.
Building a driver differs from building a user-mode application. For more information about Windows driver build, debug, and test processes, driver signing, and Windows Hardware Lab Kit (HLK) testing, see Building, Debugging, and Testing Drivers. For more information about building, testing, verifying, and debugging tools, see Driver Development Tools.
Step 5: Read the miniport driver introduction topics:
Types of NDIS Miniport Drivers
Step 6: Read the writing miniport drivers section.
This section provides an overview of the primary miniport driver interfaces. These interfaces included functions that miniport drivers provide (MiniportXxx functions) and NDIS calls to initiate operations. NDIS provides NdisXxx functions that miniport drivers call to perform NDIS operations.
Step 7: Review the NDIS miniport driver sample in the Windows driver samples repository on GitHub.
Step 8: (optional reading) Additional considerations for Miniport Drivers.
Additional considerations include topics that expand on the primary interfaces that are described in the writing miniport drivers section.
Obtaining and Setting Miniport Driver Information and NDIS Support for WMI
Plug and Play for NDIS Miniport Drivers
Reset, Halt, and Shutdown Functions
Step 9: Develop (or port), build, test, and debug your NDIS driver.
See the porting guides if you are porting an existing driver:
- Porting NDIS 5.x Drivers to NDIS 6.0
- Porting NDIS 6.x Drivers to NDIS 6.20
- Porting NDIS 6.x Drivers to NDIS 6.30
For more information about iterative building, testing, and debugging, see Overview of Build, Debug, and Test Process. This process will help ensure that you build a driver that works.
Step 10: Create a driver package for your driver.
For more information about how to install drivers, see Providing a Driver Package. For more information about how to install an NDIS driver, see Components and Files Used for Network Component Installation and Notify Objects for Network Components.
Step 11: Sign and distribute your driver.
The final step is to sign (optional) and distribute the driver. If your driver meets the quality standards that are defined for the Windows Hardware Lab Kit (HLK), you can distribute it through the Microsoft Windows Update program. For more information about how to distribute a driver, see Get started with the hardware submission process.
These are the basic steps. Additional steps might be necessary based on the needs of your individual driver.