Virtual World Driver


Carnetsoft driving simulator software

British driver chases success in motorsport’s real and virtual worlds. 29 January 2021. One of the best sim drivers in the world as well as being one of the best real racing drivers in the. The virtual world game for teens, Runescape is a medieval fantasy realm game; that lets teens travel through multiple cities and kingdoms. The players can create customized avatars, combat monsters, accomplish quests, chat, play fun games, and carry out a trade with others.

Carnetsoft develops and sells software for desktop driving simulator applications. A desktop driving simulator has no cockpit (or vehicle cabin) with a driver seat. Instead, a steering wheel is attached to a table and the driver is seated in front of a four monitor setup behind the wheel. Carnetsoft does not sell driving simulator cockpits.

The driving simulator driver training application contains all the lessons your trainee needs to become a skilled and safe driver. The emphasis is on learning to drive safely. Not only vehicle control is learned and practiced, also safe traffic participation in different environments (urban, rural, highways, roundabouts, etc.) is a prominent part of the training program. In addition, the driver training modules includes the safety awareness program.

In addition to regular driver training, also police training to drive in a priority vehicle using a siren can be trained, which is a safe option for police officers, ambulance and fire truck drivers to train driving at higher speed with a siren.

In addition to a driving simulator for training, we have developed research simulator software for behavioural and human factors experiments, and applications for driver assessment and fitness to drive tests.

Groups who may benefit from training in a simulator

The structured way of presenting training material and feedback to learner drivers results in an efficient training method that is advantageous to all learner drivers. However, especially young people with ASD (autism) or ADHD may benefit from learning to drive in a driving simulator. The driver training practices focus on single skills, such as lane changing, use of indicator, gear shifting, entering a highway, giving right of way etc. and when all these single skills have been practiced enough, all skills can be integrated while driving in more challenging environments. Also, driving with automatic transition can be practiced if this is preferred. The learner driver can practice until confidence levels are high enough without being watched by an instructor. In regular driver training in a real car learner drivers with ASD of AHDH get easily overloaded which makes driver training stressful and frustrating for them. Task automation can be reached quicker and more efficiently in the simulator than in a real car in the unpredictable traffic situations in the real world. This makes the driving simulator an ideal training environment for learner drivers with ASD or ADHD.

There have been a number of scientific studies that have demonstrated the positive effects of using a driving simulator for learning to drive for individuals with ASD (autism) , for example a study of Wade et.al, a study of Cox et.al. and a study of Brooks et al.

Similarly, scientific studies have demonstrated that simulators are beneficial for young people with ADHD for learning to drive, for example a study of Bruce et.al.


Carnetsoft offers driver training software for various countries and languages, both for LHD and RHD, so for countries where driving on the right lane is the rule (left seated) and for countries where left lane driving (right seated) is the rule. In each country-specific version, the road signs, markings and rules of the road for that country are applied.

The driver training lessons run in 15 virtual environments (sceneries) that match the climate zone of your country (more pine trees and green meadows in Northern countries, more dry ground and palm trees in Middle Eastern countries etc.). There are versions for the US, UK, Australia, New Zealand, India, South Africa, Greece, Spain, Bulgaria, Romania, Italy, The Netherlands, Germany, Thailand, Malaysia, etc. with matching road signs and markings. Also for Arabic speaking countries, there are versions for KSA (Saudi Arabia) and Qatar. For more details, check the general driving simulator page.

All vehicles carry licence plates as used in your country, and the traffic system implements road rules, including speed limits and driving on the proper side of the road as applied in your country. The language is generally English.

Its highly recommended to buy all hardware (computer, monitors, steering wheel and pedals etc.) in your country because:

  • it saves high transport costs and import taxes
  • faster repairs in case of hardware failure
  • its usually cheaper if you buy the hardware locally
  • in a number of countries import regulations result in higher costs because of export documents.

Click here to ask a question, order a car simulator or just the software.


Carnetsoft does not participate in tenders because the price of our software and for customer-specific modifications almost always is much lower than the price thresholds for procuring a tender. So all interested parties can buy this software without having to worry about tedious tender procedures.

Ordering procedure

When you order the driving simulator software, an installation will be made with all virtual environments, road signs and rules of the road adapted to your country. The language of the virtual instructor will be English. Contact us to order a research simulator licence or a driver training licence, or ask a question.

You will receive an invoice, and the installation will be uploaded to the server within 2-3 weeks after payment, from where you can download the installation by the links you will receive then via email.

After you have all the hardware ready, the software will be installed on your computer via TeamViewer. For that, your computer needs to be connected (only for the installation) to the internet.

The regular licence is for 3-channel rendering plus a monitor for the user interface. Three channel rendering means that there are 3 monitors for the rendering channels: one for the forward view, one for the left view and one for the right view. This gives a wide horizontal field of view (5760 x 1080 pixels) that allows students and subjects to look into sidestreets and inspect the right and left rearview mirrors.

If you want to use just a single monitor and a computer with lower specs, there’s the lower cost single display driver training licence. Check the pricelist and specs to compare the two versions. The 3-DISPLAY system is recommended over the 1-DISPLAY system because is encourages better and more natural visual scanning behaviour.

Description: Research driving simulator software for Human Factors research and to create experiments into car driving behaviour for use at Universities and research institutes. For price information, see hereDescription: Driver assessment car simulator software to evaluate clinical driver fitness, to treat driving phobia, assessment of driver skills such as brake reaction time, etc.
Description: Car driver training simulator software for training of driving skills, varying from basic vehicle control to driving in complex traffic environments and night, rain, fog, etc. For price information, see hereDescription: Car simulator software to promote awareness of hazards in young drivers: effects of driver distractions (for example texting and driving) on driving performance, effects of alcohol on driving, and eco driving

What is a driving simulator?

The term ”driving simulator” was originally used for machines with software developed to measure the behaviour of a car driver in a simulated environment. The first driving simulators were research simulators that were used in the car industry, to measure how people drive a car or respond to in-vehice devices, in research labs at Universities to study man-machine interactions and how drivers performed their tasks.

More recently the term driving simulator is used more often for gaming software. This type of driving simulators, or car simulator, is used just for fun and is not really related to normal car driving. They are more like racing simulators, but even then the driving experience is aimed at increasing the fun factor and not to replicate real car driving, see for example the games Project Cars and Need for Speed.

In these games, the players are not stimulated to be good drivers in the sense that they are encouraged to drive safely and according to the accepted traffic rules. So someone who performs well in such a ‘driving simulator’ game isn’t necessarily a good driver in a real car in the real world.

In other words: the behaviour that is expected in the game does not match the behaviour in a real car in the real world. So, this type of software is not made to simulate real world driving and thus the term ”driving simulator” is not entirely correct in this case, although others use the term driving simulator for both fun machines as well as for training and research.

You don’t become a good driver when using these games because you are basically learning all the wrong things, the task environment does not resemble real world driving, and because there’s no instructor who’s monitoring your behaviour and giving appropriate feedback.

These games are made to impress by using state of the art graphics and bigger than life physics that are often incorrect. But they are a lot of fun to play, and that’s what they are made for. A lot of players don’t even use steering wheels or pedals to drive around.

Real driving also requires the driver to look around because visual scanning is an important part of driving, but since most games use only one monitor, visual scanning is not a serious part of these so called driving simulator games.

I prefer to reserve the term driving simulator for serious game applications:

  • for driver training, where the focus is on safe driving, automation of driving task-related skills, visual scanning, applying the traffic rules, and learning to drive in different traffic environments (highways, rural roads, towns etc.), so it is also referred to as a driver training simulator
  • for assessment of driver fitness, where the task demands have to be similar to real world driving, and the driver performs a series of standard tests that are ecologically valid, reliable and the same for all subjects. This type of application can be referred to as a driver assessment simulator.
  • for research into driving behaviour, man-machine interactions, driver safety, etc. These car simulators include functionality for data sampling, experiment construction and scenario creation, to make scientific research into car driving easier and safer. The term ‘research driving simulator’ is often referred to in this context.

Driver training software

In driver training, it is important to practice a lot. Usually more than 40 or 50 hours of driving are required to become skilled enough for the first driving test. The extensive practice results in a level of task automation that results in better attention to unexpected situations and more efficient visual scanning.

All this results in safer driving. Learning to drive on public roads, is very important, although it has some disadvantages that result in less effective task automation. Driving simulators can be of great help here, because the training curriculum in the driver training car simulator is specifically aimed at fast skill aquisition and task automation.

As visual scanning is very important in driving, the system tracks where the trainee is looking at. This allows the virtual instructor and student assessment system to monitor and give feedback on:

  • whether the student has looked into the outside left and right and rearview mirrors when approaching an intersection or before changing lanes or filtering in and out on highways
  • whether the student has looked to the left and right when approaching an intersection or roundabout
  • whether the student has looked over the shoulder (optional) when entering or leaving the highway and before a lane change or on roundabouts

The driving simulator software for driver training excels on two aspects that are very important in driver training:

Virtual Driver Download

task automation: to become skilled in a task, such as car driving, extensive practice is important. Only when tasks are extensively trained task performance becomes automatic. Repetition of driving tasks, such as gear changing, lane changing, use of the indicator, approaching a junction, application of priority rules, negotiating roundabouts etc. makes sure the trainee practices all these tasks extensively, which results in task automation.

This is where a driving simulator is particularly helpful. When essential tasks are performed automatically, they require much less conscious attention: the driver can focus and anticipate on unexpected events and divide attention to a wider view of the surroundings.

This is the main factor that makes driving safer. A better skilled driver is more aware of hazards in the surroundings, looks further ahead, scans the surroundings of the car more frequently and checks the mirrors regularly. Situational awareness is of key importance for safer driving and in the driving simulator software.

visual scanning: the virtual instructor monitors the scanning behaviour of the trainee continuously, via a head tracker. The driving simulator software evaluates whether the driver has checked the mirrors, and looks to the left and right when approaching an intersection, or checks the shoulders when changing lanes.

Visual scanning is an important part of safe driving that must be integrated in the driving task and become second nature. Beginner drivers often lack the attentional resources to scan sufficiently which is one of the most important reasons why they fail their driving test.

As drivers become more experienced, and the task requires fewer controlled and conscious attention because of task automation, more attention is allocated to visual scanning of the mirrors and the surroundings which results in safer driving.

The driver training curriculum in the car simulator integrates visual scanning in the driver training from the start which is one of the reason why this type of training is so effective.

Task automations and consistent evaluation and feedback on scanning and driving errors are things a car driving simulator is superior in, compared to the usual method of driver training in a learner car. Feedback is consistent, the virtual instructor in the car simulator checks consistently for driving errors. Quality of instruction and feedback is high for all students, and the reports, generated by the student assessment system are detailed and present a complete picture of progress of your trainees.

Virtual drivers ed nc

The driver training software runs on a PC and includes 15 databases (highway, town, village, roundabouts, etc.) and 51 lessons. In addition, there are 13 simulations in different databases where the student can drive freely through a database.

There are driving simulator versions for LHD (left-hand driving) on the right lane, as in the USA and continental Europe, and for RHD (right-hand driving) on the left lane, as in the UK and Ireland. There are driving simulator versions with rules of the road and road signs for a large number of countries, such as the Netherlands, Germany, UK, Ireland, South Africa, Australia, New Zealand, India, Malaysia, etc.

All lessons are in binary script and not modifiable by the user in the driver training licence, although they can be modified if you have a research simulator licence.

All runtime software is in compiled form in C++ and python. The software also includes the real-time rendering software, scenario- and traffic generation software and user interfacing.

Results and progress is stored for each student individually in excel spreadsheets and contains predefined driving errors for a large number of driving tasks. For example, it is checked whether the trainee checks the mirrors regularly, maintains a proper speed, given the local speed limits and road signs, adheres to the priority rules, uses the indicator properly, maintains a safe headway to the vehicle in front, and many more.

Verbal feedback is provided immediately by the Virtual Instructor, while results are stored in the Student Assessment System.

Driver training specifics

The high quality driver training software gives your student the best driver training, for a very affordable price. The car simulator driver training curriculum consists of lessons that range from elementary vehicle control to complex traffic interactions and learning the rules of the road in a realistic setting. Also safety awareness and hazard perception (impaired driving and distracted driving) are important aspects of the car simulator training curriculum.

A few important characteristics of the driver training curriculum (module S1):

  • Training in vehicle control:
    • start engine and drive off
    • stop the car and turn off engine
    • changing lanes, use of indicator
    • gear changing
    • measurement of brake reaction time and braking distance
    • scanning and mirror checking when approaching intersections, procedures for turning left, right and going straight through
    • methods of steering
    • parking and reversing
  • Traffic participation with realistic interactive ´intelligent´ traffic:
    • right of way rules
    • safe car following distance
    • speed control and speed limits
    • passing and overtaking
    • driving on small and large roundabouts
    • driving outside buildup areas
    • driving in town and villages with traffic lights, pedestrians and zebra crossings, speed bumps, etc.
    • fitering in and out on highways
    • single and dual carriageways
  • Safety awareness:
    • effects of distractions on driving behaviour, simulation of distracted driving
    • effects of alcohol on driving behaviour
    • eco driving
  • Special circumstances:
    • night driving in various situations
    • rain
    • fog
    • snow and slippery road
    • blinding by the sun
    • driving with side wind and wind gusts
  • Automation of driving tasks by extensive practice of, for example, driving on mini roundabouts or approaching and turning left or right at intersections, etc.
  • Measurement of behaviour on separate driving tasks:
    • position on the road
    • speed control
    • steering
    • dealing with road signs
    • car following and headway
    • overtaking
    • priority and right of way
    • roundabouts, use of indicator, lane, speed, right of way
    • filtering in and out
    • use of indicator in various situations
    • changing lanes
    • scannen and mirror checking
    • gear changing
  • Advanced registration of visual scanning (mirror checking, looking left, right, over shoulders)
  • Surround vision with three displays (+ separate monitor for the operator interface)
  • Realistic graphics, large number of databases (virtual environments) advancedtraffic models and vehicle plus engine model

And all this for a fraction of the price of other manufacturers of driving simulators. Information in Dutch (rijsimulator) can be found on a separate page.

Research simulator software

The research driving simulator software extension has been developed with the help of experienced behavioural researchers to become the toolset of choice for creating behavioural experiments into car driving and human factors. The extensive toolset consists of software

  • for the creation of Virtual Environments, centered around a network of roads
  • for scenario generation, where the complete experiment can be developed with an easy to learn script language
  • for data analysis and experiment setup

The scenario generation software allows you to create a route in a Virtual Environment, to define the behaviour of other traffic (vehicles, pedestrians, animals) and traffic lights, to define auditive or visual feedback, to communicate with other applications, to define the data to store and sample frequency, etc.

The research driving simulator is an excellent tool for human factors research to investigate driving-related scientific questions. In addition, the research simulator is very well suited for science education in schools and universities, to teach students how to prepare and perform behavioural experiments, and to analyze the data.

Especially for science classes and the modern technasium, this science education software is really well suited to teach the skills involved in analysis, experimentation and critical and creative thinking. To mention a few examples of types of research the software can be used for:

  • studies on the effects of alcohol and drugs on driving performance
  • studies on the effects of distraction, secondary tasks and in-vehicle systems on driving performance
  • effects of fatigue and drowsiness on driving
  • effects of tasks on workload
  • driver behaviour modeling studies: individual differences in car following, lateral control performance, speed choice, risk taking etc.
  • effects of infrastructural modifications on driving behaviour, effects of road layout, road signs, information displays etc.
  • etc.

Clinical applications

Virtual World Racers

Car simulators are particularly known for their use in driver training, police training, and also for their application in DUI simulation and demonstrating the effects of driver distraction. However, a car simulator can be also be succesfully applied in a number of clinical applications, especially fear of driving, evaluation of fitness to drive and rehabilitation in a clinic.

Methods and techniques based on Virtual Reality are applied worldwide to treat fear effectively, for example hosophobia, fear of spiders, etc. The advantage of simulators, and virtual reality in general, consists of the opportunities it provides to practice in a safe environment while the stimuli that evoke the fear response are presented in a controlled way.

People are exposed to the fear-inducing stimuli, a technique also referred to as exposure therapy. This is probably the most effective technique from behavioural therapy to treat specific fears, such as driving phobia. Driving in a car simulator will initially be frightening for people with fear of driving, but after some time of driving, fear will typically reduce.

Fitness to drive for older drivers and drivers with neurological disorders, after CVA or sleep disorders is typically done by general practitioners using paper and pencil tests, blood samples and eye measurements.

However, a car simulator can make the fitness to drive test more ecologically valid: it resembles the driving tasks and testing can be done in a structured environment with the same test for all clients. Also, drivers assessments may take place on the road in an actual car, The problem with that is that traffic situations and task complexity may vary which makes the tests different between different persons, instructors making the assessment and different times of day, etc.

Carnetsoft offers a number of tests for the assessment of driver fitness and a number of simulations for the treatment of fear of driving.

Training simulators were first used in the military training sector where they are used to teach aircraft-,ship-, tank- and landvehicle control. Simulators are also heavily used in space travel, and NASA has a complete simulation department for training astronauts.

Simulators are used by Universities and research institutes to study the effects of road infrastructure and in-vehicle-devices on driver behaviour, see for example the driving simulator of VTI in Sweden. The biggest and most expensive research driving simulator in the world is located in Iowa. One of the best known applications of training simulator is ofcourse in pilot training for aircraft.

Virtual World Driver

Simulation systems have been applied for a longer time in driver behaviour research and the car industry, but are increasingly being used for driver education. Since the year 2000 driver education car simulators are increasingly being used by larger driving schools in a number of countries.

The price of hardware has been reduced since then which resulted in some increased use in other countries as well, for example, South Africa, The Emirates, Japan and the United States. The use of car simulator systems has increasing in a number of countries, expecially by driving schools that focus on high standards.

However, since the driver training industry is fairly conservative and not very technology-driven, there is still a lot of progress to be made. Also, driver training in a car is relatively cheap, so the cost benefits of using a driving simulator for driver training are more limited compared to learning to fly an aircraft. However, because driver training on the road has a number of distinct disadvantages, learning to drive in a car simulator is better in terms of training efficiency.


This topic describes how to write a very small Universal Windows driver using Kernel-Mode Driver Framework (KMDF) and then deploy and install your driver on a separate computer.

To get started, be sure you have Microsoft Visual Studio, the Windows SDK, and the Windows Driver Kit (WDK) installed.

Debugging Tools for Windows is included when you install the WDK.

Create and build a driver

  1. Open Microsoft Visual Studio. On the File menu, choose New > Project.

  2. In the New Project dialog box, in the left pane, go to Visual C++ > Windows Drivers > WDF.

  3. In the middle pane, select Kernel Mode Driver, Empty (KMDF).

  4. In the Name field, enter 'KmdfHelloWorld' for the project name.


    When you create a new KMDF or UMDF driver, you must select a driver name that has 32 characters or less. This length limit is defined in wdfglobals.h.

  5. In the Location field, enter the directory where you want to create the new project.

  6. Check Create directory for solution. Select OK.

    Visual Studio creates one project and a solution. You can see them in the Solution Explorer window, shown here. (If the Solution Explorer window is not visible, choose Solution Explorer from the View menu.) The solution has a driver project named KmdfHelloWorld.

  7. In the Solution Explorer window, select and hold (or right-click) the KmdfHelloWorld project and choose Properties. Navigate to Configuration Properties > Driver Settings > General, and note that Target Platform defaults to Universal. Select Apply, and then select OK..

  8. In the Solution Explorer window, again select and hold (or right-click) the KmdfHelloWorld project, choose Add, and then select New Item.

  9. In the Add New Item dialog box, select C++ File. For Name, enter 'Driver.c'.

    Select Add. The Driver.c file is added under Source Files, as shown here.

Write your first driver code

Now that you've created your empty Hello World project and added the Driver.c source file, you'll write the most basic code necessary for the driver to run by implementing two basic event callback functions.

  1. In Driver.c, start by including these headers:


    If you can't add Ntddk.h, open Configuration -> C/C++ -> General -> Additional Include Directories and add C:Program Files (x86)Windows Kits10Include<build#>km, replacing <build#> with the appropriate directory in your WDK installation.

    Ntddk.h contains core Windows kernel definitions for all drivers, while Wdf.h contains definitions for drivers based on the Windows Driver Framework (WDF).

  2. Next, provide declarations for the two callbacks you'll use:

  3. Use the following code to write your DriverEntry:

    DriverEntry is the entry point for all drivers, like Main() is for many user mode applications. The job of DriverEntry is to initialize driver-wide structures and resources. In this example, you printed 'Hello World' for DriverEntry, configured the driver object to register your EvtDeviceAdd callback's entry point, then created the driver object and returned.

    The driver object acts as the parent object for all other framework objects you might create in your driver, which include device objects, I/O queues, timers, spinlocks, and more. For more information about framework objects, see Introduction to Framework Objects.


    For DriverEntry, we strongly recommend keeping the name as 'DriverEntry' to help with code analysis and debugging.

  4. Next, use the following code to write your KmdfHelloWorldEvtDeviceAdd:

    EvtDeviceAdd is invoked by the system when it detects that your device has arrived. Its job is to initialize structures and resources for that device. In this example, you simply printed out a 'Hello World' message for EvtDeviceAdd, created the device object, and returned. In other drivers you write, you might create I/O queues for your hardware, set up a device context storage space for device-specific information, or perform other tasks needed to prepare your device.


    For the device add callback, notice how you named it with your driver's name as a prefix (KmdfHelloWorldEvtDeviceAdd). Generally, we recommend naming your driver's functions in this way to differentiate them from other drivers' functions. DriverEntry is the only one you should name exactly that.

  5. Your complete Driver.c now looks like this:

  6. Save Driver.c.

This example illustrates a fundamental concept of drivers: they are a 'collection of callbacks' that, once initialized, sit and wait for the system to call them when it needs something. This could be a new device arrival event, an I/O request from a user mode application, a system power shutdown event, a request from another driver, or a surprise removal event when a user unplugs the device unexpectedly. Fortunately, to say 'Hello World,' you only needed to worry about driver and device creation.

Next, you'll build your driver.

Build the driver

  1. In the Solution Explorer window, select and hold (or right-click) Solution 'KmdfHelloWorld' (1 project) and choose Configuration Manager. Choose a configuration and platform for the driver project. For this exercise, we choose Debug and x64.

  2. In the Solution Explorer window, select and hold (or right-click) KmdfHelloWorld and choose Properties. In Wpp Tracing > All Options, set Run Wpp tracing to No. Select Apply and then OK.

  3. To build your driver, choose Build Solution from the Build menu. Visual Studio shows the build progress in the Output window. (If the Output window is not visible, choose Output from the View menu.) When you have verified that the solution built successfully, you can close Visual Studio.

  4. To see the built driver, in File Explorer, go to your KmdfHelloWorld folder, and then to C:KmdfHelloWorldx64DebugKmdfHelloWorld. The folder includes:

    • KmdfHelloWorld.sys -- the kernel-mode driver file
    • KmdfHelloWorld.inf -- an information file that Windows uses when you install the driver
    • KmdfHelloWorld.cat -- a catalog file that the installer uses to verify the driver's test signature


Virtual World Drivers Ed

If you see DriverVer set to a date in the future when building your driver, change your driver project settings so that Inf2Cat sets /uselocaltime. To do so, use Configuration Properties->Inf2Cat->General->Use Local Time. Now both Stampinf and Inf2Cat use local time.

Deploy the driver

Typically when you test and debug a driver, the debugger and the driver run on separate computers. The computer that runs the debugger is called the host computer, and the computer that runs the driver is called the target computer. The target computer is also called the test computer.

So far you've used Visual Studio to build a driver on the host computer. Now you need to configure a target computer.

  1. Follow the instructions in Provision a computer for driver deployment and testing (WDK 10).


    When you follow the steps to provision the target computer automatically using a network cable, take note of the port and key. You'll use them later in the debugging step. In this example, we'll use 50000 as the port and as the key.

    In real driver debugging scenarios, we recommend using a KDNET-generated key. For more information about how to use KDNET to generate a random key, see the Debug Drivers - Step by Step Lab (Sysvad Kernel Mode) topic.

  2. On the host computer, open your solution in Visual Studio. You can double-click the solution file, KmdfHelloWorld.sln, in your KmdfHelloWorld folder.

  3. In the Solution Explorer window, select and hold (or right-click) the KmdfHelloWorld project, and choose Properties.

  4. In the KmdfHelloWorld Property Pages window, go to Configuration Properties > Driver Install > Deployment, as shown here.

  5. Check Remove previous driver versions before deployment.

  6. For Target Device Name, select the name of the computer that you configured for testing and debugging. In this exercise, we use a computer named MyTestComputer.

  7. Select Hardware ID Driver Update, and enter the hardware ID for your driver. For this exercise, the hardware ID is RootKmdfHelloWorld. Select OK.


    In this exercise, the hardware ID does not identify a real piece of hardware. It identifies an imaginary device that will be given a place in the device tree as a child of the root node. For real hardware, do not select Hardware ID Driver Update; instead, select Install and Verify. You'll see the hardware ID in your driver's information (INF) file. In the Solution Explorer window, go to KmdfHelloWorld > Driver Files, and double-click KmdfHelloWorld.inf. The hardware ID is located under [Standard.NT$ARCH$].

  8. On the Build menu, choose Deploy Solution. Visual Studio automatically copies the files required to install and run the driver to the target computer. This may take a minute or two.

    When you deploy a driver, the driver files are copied to the %Systemdrive%drivertestdrivers folder on the test computer. If something goes wrong during deployment, you can check to see if the files are copied to the test computer. Verify that the .inf, .cat, test cert, and .sys files, and any other necessary files, are present in the %systemdrive%drivertestdrivers folder.

    For more information about deploying drivers, see Deploying a Driver to a Test Computer.

Install the driver

With your Hello World driver deployed to the target computer, now you'll install the driver. When you previously provisioned the target computer with Visual Studio using the automatic option, Visual Studio set up the target computer to run test signed drivers as part of the provisioning process. Now you just need to install the driver using the DevCon tool.

  1. On the host computer, navigate to the Tools folder in your WDK installation and locate the DevCon tool. For example, look in the following folder:

    C:Program Files (x86)Windows Kits10Toolsx64devcon.exe

    Copy the DevCon tool to your remote computer.

  2. On the target computer, install the driver by navigating to the folder containing the driver files, then running the DevCon tool.

    1. Here's the general syntax for the devcon tool that you will use to install the driver:

      devcon install <INF file> <hardware ID>

      The INF file required for installing this driver is KmdfHelloWorld.inf. The INF file contains the hardware ID for installing the driver binary, KmdfHelloWorld.sys. Recall that the hardware ID, located in the INF file, is RootKmdfHelloWorld.

    2. Open a Command Prompt window as Administrator. Navigate to your folder containing the built driver .sys file and enter this command:

      devcon install kmdfhelloworld.inf rootkmdfhelloworld

      If you get an error message about devcon not being recognized, try adding the path to the devcon tool. For example, if you copied it to a folder on the target computer called C:Tools, then try using the following command:

      c:toolsdevcon install kmdfhelloworld.inf rootkmdfhelloworld

      A dialog box will appear indicating that the test driver is an unsigned driver. Select Install this driver anyway to proceed.

Debug the driver

Now that you have installed your KmdfHelloWorld driver on the target computer, you'll attach a debugger remotely from the host computer.

  1. On the host computer, open a Command Prompt window as Administrator. Change to the WinDbg.exe directory. We will use the x64version of WinDbg.exe from the Windows Driver Kit (WDK) that was installed as part of the Windows kit installation. Here is the default path to WinDbg.exe:

    C:Program Files (x86)Windows Kits10Debuggersx64

  2. Launch WinDbg to connect to a kernel debug session on the target computer by using the following command. The value for the port and key should be the same as what you used to provision the target computer. We'll use 50000 for the port and for the key, the values we used during the deploy step. The k flag indicates that this is a kernel debug session.

    WinDbg -k net:port=50000,key=

  3. On the Debug menu, choose Break. The debugger on the host computer will break into the target computer. In the Debugger Command window, you can see the kernel debugging command prompt: kd>.

  4. At this point, you can experiment with the debugger by entering commands at the kd> prompt. For example, you could try these commands:

  5. To let the target computer run again, choose Go from the Debug menu or press 'g,' then press 'enter.'

  6. To stop the debugging session, choose Detach Debuggee from the Debug menu.


    Make sure you use the 'go' command to let the target computer run again before exiting the debugger, or the target computer will remain unresponsive to your mouse and keyboard input because it is still talking to the debugger.

For a detailed step-by-step walkthrough of the driver debugging process, see Debug Universal Drivers - Step by Step Lab (Echo Kernel-Mode).

Virtual Drivers Ed Nc

For more information about remote debugging, see Remote Debugging Using WinDbg.

Virtual Driver Interactive

Related topics