LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

File location questions on IVI Driver

I have a question on the file locations of IVI Driver.
1, what's the IVI Class driver's location?
2, what's the IVI Specific driver's location?
3, I'm very confused to see that some IVI Specific drivers are located in c:\vxipnp\, while  some are located c:\program files\IVI\.
 
Thanks!
Jacky
0 Kudos
Message 1 of 4
(4,646 Views)
> 1, what's the IVI Class driver's location?
 
Locations are different for DLL and others (.FP/.SUB/.TXT etc...)
DLLs are located in Program Files/IVI/Bin
Other files are located in Program Files/IVI/Drivers/<class_name>

> 2, what's the IVI Specific driver's location?
 
DLLs is located in Program Files/IVI/Bin
Other files are located in Program Files/IVI/Drivers/<prefix>

> 3, I'm very confused to see that some IVI Specific drivers are located in c:\vxipnp\, while  some are located c:\program files\IVI\.
 
In past, IVI drivers were installed in to C:/VXIpnp directory as like Plug&Play drivers.  Today's IVI specifications define it Program Files/IVI as default.  However, when you install IVI Shared Components first time, you can specify the IVI's target directory.  Strictly the IVI directory is what marked in the system registry - HKEY_LOCAL_MACHINE\SOFTWARE\IVI\IviStandardRootDir
 
I think NI's IVI driver setup programs install the driver under both Program Files/IVI and VXIpnp directories for the backward compatibility. 

このメッセージは 03-22-2006 04:02 PMに Makoto が編集しています。

0 Kudos
Message 2 of 4
(4,646 Views)

   Is that to say: both paths will be included into search directories, and IVI directory specified in registry is the priority?:

   Also is it same with:

      1, I have drivers both under the folders of c:\vxipnp\winnt\bin and c:\program files\ivi\bin,when I specify the IVI directory as c:\vxipnp\winnt\bin, which is marked in the system registry - HKEY_LOCAL_MACHINE\SOFTWARE\IVI\IviStandardRootDir, the driver in c:\vxipnp\winnt\bin will be used?,vice versa?
      2, I have the driver only under the folder of c:\program files\ivi\bin. when I specify the IVI directory as c:\vxipnp\winnt\bin, which is marked in the system registry - HKEY_LOCAL_MACHINE\SOFTWARE\IVI\IviStandardRootDir, the driver in c:\program files\ivi\bin also could  be automatically be found and used?, vice versa?

0 Kudos
Message 3 of 4
(4,599 Views)

There are two registry entries regarding IVI and VXIpnp standard directories:

HKEY_LOCAL_MACHINE\SOFTWARE\IVI\IviStandardRootDir, and
HKEY_LOCAL_MACHINE\SOFTWARE\VXIPNP_Alliance\VXIPNP\CurrentVersion\FRAMEWORK_PATH

> Is that to say: both paths will be included into search directories, and IVI directory specified in registry is the priority?

No, recent IVI development tools basically look for IVI drivers placed in the IviStandardRootDir directory, however some tools may look for them in both IviStandardRootDir and FRAMEWORK_PATH directories. Also some tools may allow you to explicitly specify the location for DLL/LIB/FP files as well.

> 1, I have drivers both under the folders of c:\vxipnp\winnt\bin and c:\program files\ivi\bin,when I specify the IVI directory as c:\vxipnp\winnt\bin, which is marked in the system registry - HKEY_LOCAL_MACHINE\SOFTWARE\IVI\IviStandardRootDir, the driver in c:\vxipnp\winnt\bin will be used?,vice versa?

If you change the IviStandardRootDir to point to VXIpnp directory, all the IVI drivers to be installed later will be placed in the VXIpnp directory.  However, any existing drivers are kept remained.  When you have the same DLL module on the two difference directories, which DLL is used is up to PATH environment.  The directory that appears former in PATH variable will be finally used when the EXE client is being loaded.   However, LabVIEW's CVI driver importer (that imports an IVI driver converting it to VI wrappers) may use the DLL located with the same directory as the FP file that you specify as the importing source.  (Sorry but I am not sure about it.)

> 2, I have the driver only under the folder of c:\program files\ivi\bin. when I specify the IVI directory as c:\vxipnp\winnt\bin, which is marked in the system registry - HKEY_LOCAL_MACHINE\SOFTWARE\IVI\IviStandardRootDir, the driver in c:\program files\ivi\bin also could  be automatically be found and used?, vice versa?

Yes, the DLL placed in ProgramFiles/IVI/BIN is automatically used, because the directory is at least specified as in PATH variable.  Changing registry itself does not affect to PATH environment variable.

---------------------

The IVI-3.1 (Driver Architecture Specification) Chapter 6  Installation Requirements says that an IVI driver installer shall check the IviStandardRootDir registry understanding it as the IVI's root directory.  The VXIpnp's FRAMEWORK_PATH registry is not used.  I believe recent IVI drivers from instrument manufacturers are almost following this rule.

As for IVI drivers from NI, the driver installer seem like installing into IVI's root directory (by according to IviStandardRootDir registry) as well as into VXIpnp/WinNT directory (by according to FRAMEWORK_PATH registry).  The IVI's installer requirement defines the destination directory is the one defined by IviStandardRootDir, and not VXIpnp directory.  There is a background that old IVI drivers and old and today's VXI Plug&Play drivers are installed into VXIpnp directory. I believe the installation that NI's installer does is for backward compatibility especially for old LabVIEW and CVI versions, which might look for the IVI and VXI Plug&Play drivers in VXIpnp directory only.

---------------------

Makoto

このメッセージは 04-12-2006 06:00 PMに Makoto が編集しています。

このメッセージは 04-12-2006 06:03 PMに Makoto が編集しています。

0 Kudos
Message 4 of 4
(4,583 Views)