Attending a Seminar? Be Sure to Setup Your Lab System In Advance!
Last updated: 28 June 2023 (to reflect Win 11 22H2 WDK and VS 2022)
When you attend an OSR seminar that includes lab exercises involving driver development, you’ll need to have access to a pre-configured Lab System to do the labs.
The Lab System setup requirements can vary depending on the particular class you’ll be attending. So please make sure to check with the OSR Seminar Team to determine the setup requirements that apply to your specific seminar.
Which Seminar?
This page describes the general lab system setup requirements, and are primarily designed for our WDF Core Concepts seminar. If you’ll be attending a different seminar, the requirements might be different. Check with the OSR Seminar Team well before the start of your seminar so you know what you’ll need.
We’re also not as strict about requirements for more advanced seminars as we are for the more introductory level seminars. For example, if you’re attending our WDF II (Advanced Implementation Concepts) seminar we still recommend you use the standard setup. But given that if you’re attending this seminar you’re an experienced WDF developer, we assume you know what you’re doing and we’re happy to have you use whatever development environment and tools you prefer. The only caveat (and it’s a significant one) is that our instructional team will not be able to help with anything other than our standard setup. So, if you need help debugging a problem and you’re using the Windows Enterprise WDK, building from the command line, editing with vim, and trying to debug your driver running on VirtualBox… you’re basically on your own to make all that stuff work during class.
Standard Lab System Setup Requirements
You always need two systems running Windows to develop drivers: You need a Development System, with Visual Studio and the Windows Driver Kit (WDK) installed for writing and building your driver. And you need a Test System, which is the system on which you’ll be running the driver code that you build on your Development System.
For doing the labs during your seminar, we assume your Test System will be a virtual machine running under VMware on your Development System. Other setups are possible, but — as we said before — our instructional team will not be able to help with anything other than the setup that we describe here.
Your Development System must be running 64-bit Windows 10 version 2004 (that is 20H1) or later. Windows 11 is recommended. Please have your Development System updated with the latest Windows Updates and ensure your Internet access works (if you’re coming to an in-person seminar, either WiFi or hard-wired is fine). Also, if you’re taking the WDF I seminar, you’ll need at least one available USB 2.0 capable port (with a “USB type A” connector or adapter) to use with the OSR USB FX2 board, if you choose to do the USB exercise. We strongly recommend a system with at least 8GB of memory and 60GB of free disk space. Because you’ll be running a virtual machine on your Development System, “more memory is always better.”
While almost everyone’s lab system configurations work without any problem, we’ve occasionally seen people use test machines that have been configured by Corporate IT departments with “security” software (network proxies, remote management agents, document management and tracking, access control, and the like). Some network proxies, for example, can make it impossible for the debugger (WinDbg) to download symbols that you’ll need from the Microsoft symbol server. Bottom line: If you have a choice, keep it simple. A system that’s not domain joined and is not “managed” by your employer’s IT department is usually best. A lot of students use “test” laptops, with clean installs of Windows and the tools described to do the labs. This almost always works well and, if you have a choice, is what we most strongly recommend. An, older, slower, system, that’s been installed and configured specifically for class without corporate management and security software, is almost always preferable to a newer, more powerful, system that’s domain joined and centrally managed.
If you’re doing the lab exercises from home or from your office, you should be able to use whatever system you normally use for development, assuming you can successfully install the software we list and you have successfully tested it (as described later).
About WDK Versions and Targeting Older Versions of Windows
The Windows 11 WDK Version 22H2 works with Visual Studio 2022 (only). It only supports building drivers for Windows 10 and later systems using 64-bit x64 or ARM64 processors. It does not support building drivers earlier versions of Windows, or for 32-bit hardware. You can read more about this, including our take on the situation, in our Developer’s Blog post on this topic. Because it is the “latest and greatest, this is the version we recommend you use if you choose to do the labs for your seminar.
Earlier versions of the WDK, which work with Visual Studio 2019, allow you to build drivers that target Windows 7 or later, up through and including the newest versions of Windows 11. If you need to write drivers that support versions of Windows prior to Windows 10, you’ll need to stick with VS2019 and the Windows 11 WDK that pre-dates the version for 22H2.
Your Development System will need to have the following software installed:
- Microsoft Visual Studio (VS) 2022 with the latest updates, the Windows 11, version 22H2, SDK, and the Windows 11 version 22H2 WDK (this is labelled WDK 10.0.22621).
If you’re installing Visual Studio specifically for this class, we recommend you install Visual Studio Professional. If you already have VS 2022 installed on your system and working with the Windows 11 version 22H2 WDK you can use that. You don’t need to reinstall VS just for the class.
The links and complete installation instructions for downloading and installing VS, the WDK, and the SDK can be found at https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk (opens in new tab).
To install Visual Studio, the SDK, and the WDK please go to the WDK download page, and read and follow the instructions carefully. Particularly note the Microsoft instructions about installing the Spectre mitigated libraries. You will need to manually select the x64/x86 versions of these libraries to install. This means that in addition to selecting the “Desktop development with C++” workload, you may need to select “Individual components” and then check the box to install the “MSVC V143 – VS2022 C++ x64/x86 Spectre-mitigated libs (Latest)” as shown on the WDK download page.
The Microsoft WDK download page looks like this:
- VMware Workstation Player 17.0 (or later) – This software is available from http://www.vmware.com/products/player. If you or your company doesn’t already have a license and you don’t qualify for the “free trial” of this product or the Workstation Pro product, you are responsible for the retail license cost of $149 for this product (which is not included in the cost of your seminar). The VMware installation on your Development System will host a Windows 11 x64 virtual machine provided by OSR that will be used as the target system on which to test your drivers during class. VMware Workstation Pro 17.0 (or later) may be used in place of the VMware Workstation Player. In fact, if you’ll continue to do driver development using VMware after your seminar, OSR recommends you select Workstation Pro due to its increased functionality and flexibility over Player. But either version will work equally well during your seminar.
The VMware VM that OSR provides for your class is simply a client VM image running a random version of Windows 11 – nothing else is installed in this VM. Please be aware that the names of the VMware products (that is “Workstation Player” and “Workstation Pro”) have changed several times over the past few years. The terminology above reflects the names that were current as of VMware V15. Contact the OSR seminar team if you have any questions about which VMware product you need to install.
Please be sure to test your installation of Visual Studio 2022 and the Windows 11WDK version 22H2, and the VMware product of your choice thoroughly before class begins. Detailed instructions for testing are provided below.
If you have ANY questions regarding the required configuration, please contact our seminar team: seminars at osr.com.
Why VMware? Why Not Use Hyper-V?
We use VMware in our seminars because it’s easy to setup, easy to use, easy to get working with the kernel debugger, and (most of all) it’s what we use internally at OSR for our development work.
Have Your Lab System Ready and Tested Before Class Starts
We know you’ll be super-busy at work before your seminar begins. But, do yourself a favor: Reserve an afternoon before the start of your seminar to install the required software on your lab system, and to test that software.
If you leave the installation, configuration, and testing until after the seminar starts, you’re just making things harder on yourself. This is true whether you’re attending your seminar in person (internet connections at hotels aren’t always the greatest) OR you’re attending remotely (you’ll have more than enough to do at work/home, in addition to attending your seminar). Not to mention that we promise you that you’ll be tired after the first day of your seminar.
How to Test Your Lab System Setup
If you’re already familiar with Windows driver development using Visual Studio and VMware, you know what to do to test your installation to make sure everything is properly configured and working. If you’re new to Windows driver development, here are some steps that you can take to test your installation to be sure you’re ready to go for your seminar’s first lab session:
- Basic Validation: Start Visual Studio. From the VS “File” menu select “New” and then “Project”. A “New Project” dialog should appear and under “Installed” and “Visual C++” should be an entry named “Windows Drivers” with several types of sub projects under it. If this is what you see, “Cancel” out of the dialog and proceed to Step 2. Otherwise check and re-check your VS and WDK installation before you do anything else. If you continue to have problems, contact the seminar team by email.
- Check the Debugger: Ensure that the Windows Debugger (WinDbg) is installed on your development system and that you can start it. You should find windbg.exe in the directory %ProgramFiles%\Windows Kits\10\Debuggers\x86\ — You might want to put a short-cut in your tool tray to the file in this directory. Note that depending on how you installed the SDK, you may also have an entry for WinDbg in your Start screen. This will point to the version installed by the SDK.
- Build a Test Driver: The final test for Visual Studio is to build a sample driver using the WDK. For this test, you’ll build one of the starter “template” WDF driver projects. If you won’t be attending a WDF seminar, don’t worry. The goal here is just to test that Visual Studio and the WDK are installed and working. If you can build one type of driver, you’ll be able to build any type of driver we’ll be creating in class. For this test once again start Visual Studio. Select “Create New Project” from the startup dialog and change “All Project Types” to “Driver”. You should now see several driver project templates. Select the one that reads “Kernel Mode Driver (KMDF)” in the center pane, like you see below:
Click “Next” and ensure that you have access to the path in the “Location:” box (if not, adjust properly). Click the “Create” button. Wait for the template project to be generated. Once the project has been successfully created, ensure “Debug” and “x64” are selected as the Solution Configuration and Solution Platform, respectively. Then, right click the solution and select “Build Solution” from the pop-up dialog: Within a few seconds, the build should complete and the Visual Studio output window should indicate that the build is successful: If the build succeeds, you know that your lab system configuration of Visual Studio and the Windows Driver kit is ready for your seminar! Next, test your VMware installation.
- Test Your VMware Installation: If VMware installed without any errors, that only indicates that the installation is correct. You still have to make sure you can successfully start and run a virtual machine (VM). To test this, download and start a small VM of any operating system. We recommend something like the Tiny Core Linux VM that you can download from this link. Download the VM image (it’s a 12MB “OVA” archive). Then start the VMware product you’ll be using (either Player or Workstation) and open the downloaded OVA file the VMware “File… Open” dialog. This will decompress the OVA file and start it. The Tiny Core Linux VM boots in less than 5 seconds, even on a slow system.
If you have problems, check the steps carefully. If you can’t diagnose the problem on your own, contact the OSR Seminar Team and one of our engineers will try to help you.
Having Trouble? Can’t Run VMware? Other?
To make your life simple, we recommend you using a lab system that’s not domain joined and not subject to your employer’s remote management scheme (if there is one). By far, the majority of problems we see in class with people setting up lab systems are due to their trying to do stuff to managed systems that their employers make difficult. So, if you’re everyday system is company managed, and especially if you’re attending your seminar in person here at OSR, you might consider bringing a separate, non domain-joined, “test” laptop that you setup specifically for use in class.