Hi guys,
I have written a LabVIEW program that communicates with a USB measurement device using NI-VISA (USB raw class).
With the NI-VISA Driver Development Wizard I created two driver .inf files (for XP/2000 and 7/Vista).
It works like a charm on my own computer (Win 7, 64-bit) and on computers running Windows XP and 32-bit versions of Windows Vista and 7.
I can also get it to work on the 64-bit versions of Windows Vista and 7 by using 'disable driver signature enforcement' prior to installation of the driver.
Once the driver is installed it is listed under 'NI-VISA USB devices' in the Windows Device Manager. After that I can re-enable driver signature enforcement, the device will continue to work, even after a reboot.
Alas, in the 64-bit version of Windows 8 it's not that easy. Yes, you can temporarily disable driver signature enforcement, but not on computers that use 'secure boot' and/or UEFI.
I know that are ways of disabling secure boot in the UEFI, but I don't want to that on the computers of our customers. It looks bad and might introduce a lot of security problems.
The logical next step would be to sign the device driver. Our company does have a valid kernel-mode code signing certificate and we have signed other drivers with it in the past.
The problem is that I don't know how to sign my NI-VISA based device driver. According to the .inf file it uses WinUSB.sys, a generic Microsoft USB driver (part of the Windows Driver Kit, I believe).
Winusb.sys is already signed by Microsoft and I could replace the signature, but that probably will not work without some inf tweaking and generating a new catalog file.
Can somebody please give me some pointers on where to start? As a reference I have attached one of the inf files to this post. This inf file works on Windows Vista and 7.
Is it even possible to create a signed driver based on NI-VISA raw?
Thank you in advance for your help.
Paul