Roadmap for Developing Network Drivers with Winsock Kernel
To create a networking driver package that uses the kernel-mode socket programming features of Winsock Kernel (WSK), 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 the Network Driver Interface Specification (NDIS).
Your driver package will typically use Network Driver Interface Specification (NDIS) interfaces. For more information about NDIS and NDIS miniport drivers, see the following topics:
Step 3: Determine additional network components to use in your driver.
In addition to the core NDIS features, you can use the following additional Windows network components with kernel-mode drivers, depending on the hardware configuration:
Step 4: Learn the fundamentals of Winsock Kernel.
Winsock Kernel is supported in Windows Vista and later versions of Windows. For information about how to use Winsock Kernel, see Introduction to Winsock Kernel.
A simpler, more generic network programming interface that you can use in network drivers is Network Module Registrar.
Step 5: Determine additional Windows driver design decisions.
Step 6: Learn about the Windows driver build, test, and debug processes and tools.
Building a driver differs from building a user-mode application. For information about Windows driver build, debug, and test processes, driver signing, and Windows Hardware Certification Kit (HCK) testing, see Building, Debugging, and Testing Drivers. For information about tools for building, testing, verifying, and debugging, see Driver Development Tools.
Step 7: Review the Winsock Kernel (WSK TCP Echo Server) driver sample in the Windows driver samples repository on GitHub.
Step 8: Develop, build, test, and debug your driver.
For information about iterative building, testing, and debugging, see Overview of Build, Debug, and Test Process. This process helps ensure that you build a driver that works.
Step 9: Create a driver package for your driver.
For information about how to install drivers, see Providing a Driver Package.
Step 10: 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 Certification Kit (HCK), you can distribute it through the Microsoft Windows Update program. For more information about how to distribute a driver, see Distributing a Driver.
These are the basic steps. Additional steps might be necessary based on the needs of your individual driver.