

In fact, drivers are just a special case of services as far as windows is concerned.īoth may be created, controlled, and removed using the sc.exe utility. Both drivers and services use a key under this location with the name of the driver or service to store their parameters. Ultimatly, both store registration information in the same place - the HKLM\System\CurrentControlSet\Services key. So a bit about both drivers and windows services. Rebooting is the lazy man’s way of starting the driver. For example, if you read up on IT Ninja on the app used in this blog (Wireshark and the WinPCap driver), you’ll see a bunch of experts explain that after you install the driver, you must reboot before you can run Wireshark.īullocks I say! You just have to start the driver first.

Additionally, MSI generally will install or uninstall a driver, but starting/stopping it is unusual.Īnd this confuses a lot of IT experts. Packers never actually see the thing that does a driver install. In fact, it probably is due to the stupidity of MSI that we don’t consider this. Drivers that can’t be started and stopped at will are things that are always processing stuff, but if your virtual app isn’t running then it isn’t processing stuff and no other app is going to trigger it to do work either, then maybe we can start/stop it at will. You see, most of the drivers associated with a user mode app that you want to virtualize can actually be started and stopped at will. We can’t virtualize stuff running inside the kernel with App-V, but we can virtualize the control, which is what I will demonstrate in this blog post. Typically delivered as a “.sys” file, it sometimes is also delivered with an inf file that explains how to install it.

Backgroundįirst, you need an app that has a device driver associated with it that you can virtualize if you deploy the driver separately.īut what is a driver? A specialized piece of software that runs inside the kernel. The driver isn’t really virtualized, I just make it only exist when it needs to and then goes away so that other software doesn’t know that it is there. Today I created my first Virtual Device Driver with App-V!!!! All of the pieces were right there in front of me for a while, but it didn’t click until today. I’m not sure why I never thought of this before.
