05-18-2011 03:51 PM
I make a product that depends on having the NI-DAQmx driver installed, and it must be of a suitably recent version. To check this, and to give my customers intelligent feedback on why the installation isn't complete, I check the Windows Registry: HKEY_LOCAL_MACHINE\SOFTWARE\National Instruments\NI-DAQmx\CurrentVersion\Version. I just had a call from a customer who had installed NI-DAQmx 9.3.0f2 and my installer is telling him that NI-DAQmx isn't installed. So I downloaded the entire 1.2 GByte driver installer and installed it here on my machine. Sure enough, my installer tells me the driver isn't installed. regedit shows me that HKEY_LOCAL_MACHINE\SOFTWARE\National Instruments\NI-DAQmx\CurrentVersion contains only a Path key, no Version key.
Is this an oversight in this version of the driver?
Has something changed such that I need to alter my installer?
Is there a new way to check the presence/version of NI-DAQmx?
I see lots of posts on these forums about that key, but none more recent than 2009.
Thanks in advance for any information on this.
Solved! Go to Solution.
05-18-2011 04:34 PM - edited 05-18-2011 04:36 PM
Hi John,
Are you on a 64-bit OS? If so the keys should be under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\... etc.
Best Regards,
05-18-2011 05:04 PM
Bingo.
So I guess I have to check both paths. Thanks!
05-18-2011 05:21 PM
Hi John,
Could you describe how you are checking the registry keys? MSDN has some more information about the 32-bit vs. 64-bit keys that you might find useful. If you provide more information about how you are checking the keys I can speak with one of our installer developers to see if there might be a better way.
Best Regards,
05-18-2011 06:33 PM
I'm using Tarma Workshop to build my installer- they handle a lot of those issues.
It occurs to me that Wow6432Node might be some sort of "fake" node? Something that the system displays to users but that doesn't really exist- Windows seems to like those things, like Windows Virtualization, which has caused a lot of problems.
Thanks for taking your time with this!
05-18-2011 07:02 PM
OK- A little more research in MSDN indicates that Wow6432Node is, in fact, a fake node. I'm contacting the Tarma Workshop people next; they have been very helpful in the past.
05-19-2011 11:01 AM
It's next day now, and I got a response from Tarma. They think the installer should transparently handle finding either the Wow6432Node path or the one without that node. But it turns out that my registry has TWO paths: HKEY_LOCAL_MACHINE\SOFTWARE\National Instruments\NI-DAQmx\CurrentVersion AND HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\National Instruments\NI-DAQmx\CurrentVersion.
I'm guessing that the non-Wow6432Node path is left over from a previous NI-DAQmx installation (I had 9.0.0 installed previously). Maybe it's bug in the NI installer that it fails to clear out the non-Wow6432Node path? There's lots of stuff there- is the entire National Instruments node in the non-Wow6432Node view stale? I uninstalled the old driver before installing the new one.
05-19-2011 11:47 AM
Hi John,
Most of the data is only in HKLM\SOFTWARE\Wow6432Node\National Instruments\NI-DAQmx\CurrentVersion, and is accessed using the KEY_WOW64_32KEY flag to avoid looking in two places. Does the installer framework that you are using support something equivalent to this flag?
HKLM\SOFTWARE\National Instruments\NI-DAQmx\CurrentVersion doesn't contain much, but it's not stale: it stores the path to the 64-bit version of %ProgramFiles%\National Instruments\NI-DAQ, which may be elsewhere if you select a different directory during installation. The corresponding value in the WOW64 section refers to the 32-bit directory.
Brad
05-19-2011 12:24 PM
Thanks, Brad.
So both paths are supposed to be there. I tried deleting the non-Wow6432Node NI-DAQmx\CurrentVersion node, and that made my installer work correctly. So I guess this is an issue for the installer maker to fix.
Again, thanks for the info.