I believe you are using "ki4800" IVI-C driver (strictly an IVI-C wrapper for Kikusui4800 IVI-COM) through the NI IviDCPwr class driver. The ki4800_close() function in the ki4800_32.DLL internally invokes IviSession_Dispose() function (exported from IviCShared.DLL) and its call is apparently causing the problem.
What I have confirmed are:
1) When using the ki4800 IVI-C driver without class drivers, everything works fine.
2) When using the ki4800 IVI-C driver through IviDCPwr class driver, invoking IviSession_Dispose() from inside ki4800_close() just hangs up and never returns.
I am still investigating what is happening when using IviDCPwr class driver, but I can't currently figure out why IviSession_Dispose() function hangs up without return. Does anybody know why this function hangs up instead of returnning an error?
My test environment is:
WinXP SP2
CVI 8.0
NI-VISA 3.4.1
GPIB-USB-B with NI-488.2M VER2.2
NI IVI Compliance Package 2.3
latest IVI Shared Components
Makoto
Kikusui Electronics Corp. / JAPAN