To help new driver developers and experienced driver developers who are new to a specific type of driver, the Windows Driver Kit (WDK) writing team is investigating the use of a new topic type that lists the basic set of steps in the end-to-end driver development process for a specific type of driver. These new topics, tentatively titled roadmap topics, are similar to the “Steps in Driver Development” topic in the WDK documentation but customized for a specific type of driver.

We would love to get your feedback on the usefulness of this type of topic. We have included a roadmap prototype topic for Windows Filtering Platform (WFP) callout drivers below. Please review this prototype topic for accuracy, completeness, and general usefulness to new driver developers and experienced driver developers who are new to WFP callout drivers. Please add your comments and let us know what you think.

************************************************************************************

    Roadmap for Developing WFP Callout Drivers

To create a Windows Filtering Platform (WFP) callout driver, perform the following steps:

·         Step 1: Learn about Windows architecture and drivers.

You should understand the fundamentals of how drivers work in Windows operating systems. Knowing the fundamentals will help you make appropriate design decisions and organize your development process. See Understanding Driver and Operating System Basics.

·         Step 2: Determine the Windows driver model for your WFP callout driver.

WFP callout drivers can be written either by using the Windows Driver Model (WDM) or the Kernel Mode Driver Framework (KMDF). For more information, see Choosing a Driver Model. For more information about WDM, see Introduction to Windows Drivers and Writing WDM Drivers. For more information about KMDF, see Getting Started with Kernel-Mode Driver Framework.

·         Step 3: Determine additional Windows driver design decisions.

For information about how to make additional Windows design decisions, see Creating Reliable and Secure Drivers, Planning for 64 Bits, and Providing Driver Localization.

·         Step 4: Learn about Windows driver build, test, and debug processes and tools.

Building a driver is not the same as building a user-mode application. See Building, Debugging, and Testing Drivers for information about Windows driver build, debug, and test processes, driver signing, and Windows Logo testing. See Driver Development Tools for information about building, testing, verifying, and debugging tools.

·         Step 5: Learn about WFP in Windows Vista and Windows Server 2008.

See About Windows Filtering Platform and Windows Filtering Platform Callout Drivers Design Guide.

·         Step 6: Review WFP callout driver samples.

See WFP Sample Project and How to Get the Windows Driver Kit and the Windows Logo Kit for driver samples in the WDK.

·         Step 7: Make design decisions about your WFP callout driver.

See Callout Driver Programming Considerations.

·         Step 8: Develop, build, test, and debug your WFP callout driver in the C programming language.

For more information about WFP callout driver specifics, see Callout Driver Operations and Callout Driver Installation. For more information about functions, structures, enumerations, or constants that are specific to WFP, see Windows Filtering Platform Callout Drivers Reference. See Overview of Build, Debug, and Test Process for information about iterative building, testing, and debugging. This process will help ensure that you create a driver that works. 

·         Step 9: Create a driver package for your WFP callout driver.

For more information, see Providing a Driver Package.

·         Step 10: Sign and distribute your WFP callout driver.

The final step is to sign (optional) and distribute the driver. If your driver meets the quality standards that are defined for the Microsoft Windows Logo program, you can distribute it through Microsoft's Windows Update program. For more information, see Distributing a Driver.

 

These are the basic steps. Additional steps might be necessary based on needs of your individual driver.

************************************************************************************

Thanks for helping us improve the documentation for driver developers in the WDK.

Joe Davies [MSFT], WDK Writing Lead
http://blogs.msdn.com/wdkdocs
 
This posting is provided "AS IS" with no warranties, and confers no rights.