The WDK for Engineering Managers and Product Planners: An Introduction Lee Davis Lead Program Manager Windows Driver Kits LeeDavis @ Microsoft.com Microsoft Corporation Session Outline What is the Windows Driver Kit (WDK)? Features and Content Driver Test Manager Preparing for the WDK What is the WDK? WDK Goals WDK Vision: Windows device drivers always work WDK Mission: Provide a fully integrated Windows Driver Development System that ensures successful production of the highest quality drivers WDK Motivation Improve driver quality => improve Windows experience Reduce complexity Reduce product development costs Reduce support costs in do w s D D riv ev er ic e Fr Te am W st ew in Fr do or am k w e s w D D or riv ev k er ic e Ki M t a D n riv ag er em ve en rif t& D ic riv a In tio er st n Q al t ua o la o D tio lit l s ifx y n Si To gn ol at s W ur in e do w s Er O nro lin rR e ep Pr or ov ti n is g io ni ng W A Holistic Approach Frameworks Test Design x x Develop x x x x x x x Qualify x x Maintain x x Tools x Online Services x x x x x The WDK - Description One Single Kit More than a simple combination of DDK, IFS Kit and HCT Content, tests, tools, development environment Driver Test Manager replaces the Hardware Compatibility Tests Key WDK Objectives Build, test, debug drivers on Windows 2000 forward to Windows codenamed “Longhorn” Support all Signature and Logo programs Including Windows Partner Logo testing and Driver Quality Signature The HCTs for previous Windows releases are planned to be replaced at Longhorn RTM Help partners improve quality by using many of the same tests and tools as the Windows development team uses More than just the Logo tests Verification and analysis tools Stress, performance, and functionality tests The WDK _ Lifecycle Components Key Usage Integrated build environment for device software development OS and Tools Documentation Windows Driver Build Foundation 1 Build Drivers ( Win2KLH) 2 Debug Drivers 3 Driver Testing 4 Logo Testing WinQual Driver Test Environment Scenarios Integration Manager Environment LDK Test Samples Harness (WTT) Template Drivers Development Tools Logo Tests Kernel Quality Tests Debugger Maintain Qualify Test Develop Design (PREfast) Pillars of LDK Build The WDK - Deployment WDK Test Lab Extensions for 3rd Party Tests Logo Tests Driver Test Manager Static Analysis Samples Test Result Sharing MS Quality Tests OEMs Internet Docs Microsoft Debugging Tools* Build Environment Features Features: Design and Development Build Environments for Windows 2000 forward Versioned Headers – one set of headers!!! Windows Driver Foundation Latest versions of: Debuggers PREfast for Drivers Call Usage Verifier New Tools Static Driver Verifier Deprecated Function Checking Redesigned Documentation Navigation / Search Header Hierarchy Core headers utilize a superset/subset model Higher level headers #include lower headers NTIFS.H Result: Definitions moved to lowest common header Higher headers only have definitions specific to them Enables versioning #include NTDDK.H #include WDM.H Versioned Headers Goal: Support driver development from Windows 2000 forward with one set of headers Creation of binaries for multiple versions of Windows using a single set of headers Separate binaries for each O/S version, or… Single binary that supports multiple O/S versions Both Kernel and User mode headers Planned for Longhorn Beta 1 Benefits Simplified development environment management Easier to use up-level features of later OS versions Developer Documentation Improvements Goals: Make it easier to find specific content Based on user data collected in 2004 Improvements Integrating content from IFS Kit Table of Contents – more hierarchical, improve grouping Index – emphasis on keywords Readmes for samples and tools included in TOC and Search Filtering based on technologies Some improvements are in Windows Server 2003 SP1 DDK Benefits No need to obtain separate IFS Kit Don’t need to know topic title to find content Information on samples and tools more readily available Improve TOC Old TOC Improve TOC New TOC Features: Test Driver Test Manager (DTM) Formerly known as the “LDK Test Harness” Same testing tool used by Windows Test Teams Many of the same tests used by Windows Teams More than just the Logo tests Stress, performance and functionality tests Targeted Environment For testing only Windows drivers and related apps Not to be used in non-test environments Usage limited to OEMs, ODMs, IHVs, ISVs DTM: Scaling to All Driver Test Needs Scaling Up To large QA Labs Up to 100 test clients per controller As many controllers as needed Single controller per database No inter-controller processing Scaling down Developer unit testing One controller, one test client DTM: Deployment Studio UI Streamlined for driver testing Planning and monitoring ∞ 1 Controller Services and daemons Configuration database Stored procedures Test Client System under test Contains a slim execution agent Automation Datastore 1 100 DTM Controller DTM: Key Concepts Jobs A codified test plan A collection of 1 or more tasks Executables, like “LogoTest.exe” Task dependencies can be created Setup, Regular, Cleanup Sharable Constrainable DTM Job Configuation Tests Dumps Results Dimensions Parameters The DTM provides a common set of jobs You can create custom jobs Configuration Gatherer Collects information about a test client’s configuration Hardware and software Presents configuration to controller for scheduling DTM: Key Concepts Scheduling Automated job distribution Parallel execution Targets jobs to the resources Packaging Collection of test scenario information Tests, configuration, logs, results Collaboration Reproduction Automated Deployment Automated System Installer (ASI) Hands-off installation of any Windows version Clean installation integrity No need to manage a large number of images System Imaging Tool Automated install of any image Packager Scenario Investigate a failure View Data Import LDK Controller Test Clients Jobs, tests, results, system configuration data, crash dumps Studio LDK Controller Test Clients The package can be saved so the tests can be duplicated at a later date… DTM Scenario The scheduler matches the jobs to the test targets with the appropriate hardware OEMs My Job Job 0 Scheduler Automation Datastore My Job …and shared with customers, OEMs, or submitted to Microsoft Config Device x DTM Controller The test engineer creates and manages Microsoft jobs from the studio The jobs and test configuration are sent to the test targets Device00 Device Device 0 Log Log 1 DTM Studio After reviewing the results, the test engineer packages all test information and results The test targets are configured automatically, including a clean install of the OS The gatherers are sent to the test targets to gather information about their devices When the tests are complete, the results are sent to the controller where they can be reviewed Log 0 The tests execute in parallel or in sequence, collecting results in logs Test System Pool Demo Driver Test Manager DTM: Benefits Single automated testing framework Logo tests Non-logo tests Your tests – preserve your existing investments Testing framework used by Microsoft internally Improved testing throughput – parallel execution Installation of OS images on test systems Collaboration using the “Packager” Among remote sites, your partners and Microsoft Share any test scenario – drivers, jobs and tests, test results (including Logo), crash dumps Preparing for the WDK Planned WDK Timeline Tied to the Longhorn release schedule WDK released simultaneously with Longhorn interim releases and milestones WDK Betas released simultaneously with Longhorn Betas Beta 1 – DTM, OS Imaging, Versioned Headers, CUV, PFD, Samples Beta 2 – DTM Collaboration, Tests RC0 – DFW Logo content / tests RC1 – Use WDK for Logo submittals Partner Engagement Driving early adoption We have traditionally not had strong adoption during the previous DDK or HCT betas The WDK needs feedback early enough to act on it Sign up for the WDK program if you are interested in providing feedback Technology Adoption Program 25 participants Focused adoption efforts in the beta timeframe Select 75 participants Surveys, limited call downs, availability of interim builds Beta Hundreds of participants Testing adoption through statistical sampling Call to Action Start preparing now The WDK will be necessary for Longhorn Logo testing Plan and budget for new software Try Driver Test Manager in your lab Consider changes to lab topology Training (courses, books) Don’t be caught off guard: Sign up for the WDK beta program and try the WDK Does it align with your business goals? How does it fit into your line of business processes? What features might help keep your costs down? Contact: WDKFB @ microsoft.com Community Resources Windows Hardware & Driver Central (WHDC) www.microsoft.com/whdc/default.mspx Technical Communities www.microsoft.com/communities/products/default.mspx Non-Microsoft Community Sites www.microsoft.com/communities/related/default.mspx Microsoft Public Newsgroups www.microsoft.com/communities/newsgroups Technical Chats and Webcasts www.microsoft.com/communities/chats/default.mspx www.microsoft.com/webcasts Microsoft Blogs www.microsoft.com/communities/blogs Additional Resources Community Sites http://www.microsoft.com/communities/default.mspx List of Newsgroups http://communities2.microsoft.com/communities/newsgroups/enus/default.aspx Attend a free chat or webcast http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/seminar/events/webcasts/default.mspx Locate a local user group(s) http://www.microsoft.com/communities/usergroups/default.mspx Non-Microsoft Community Sites http://www.microsoft.com/communities/related/default.mspx Additional Resources For questions on the WDK, email WDKFB @ microsoft.com Web Resources: Windows Driver and Hardware Central – http://www.microsoft.com/whdc/default.mspx WDK Page: http://www.microsoft.com/whdc/driver/wdk/default.mspx “Introduction to the Windows Driver Foundation Peter Viscarola” “How To Develop Device Drivers Using the Kernel Mode Driver Foundation“ by OSR Press. September 2005. www.osr.com/wdfbook.htm Related Sessions Windows Driver Foundation: An Introduction (next) Business Value of the Windows Device Software Lifecycle (today afternoon) Windows Driver Quality Signature (today afternoon) How to Improve Driver Quality with Winqual / WHQL (Wed) How to Manage a Quality Device Driver (previous) Driver Install Frameworks Tools and Strategies (Wed) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.