I believe your original idea of using VISA to detect the long name will work.
This C code segment will extract a list of long names :
viOpenDefaultRM (&RsrcManagerHandle);
viFindRsrc (RsrcManagerHandle, "?*", &FindHandle, &iInstrCount, cInstrDescript);
for (i=0; i {
viFindNext (FindHandle, cInstrDescript);
}
The Find Resource APIs return instrument names in the same order as
the NI-DAQmx Base find utility ("Dev1", "Dev2", etc)
Then use this code to retrieve instrument specific details like Model Name for example:
viOpen (RsrcManagerHandle, cInstrDescript, VI_LOAD_CONFIG, 10, &InstrHandle);
viGetAttribute (InstrHandle, VI_ATTR_MODEL_NAME, cModelName);