Errorcode 1 generally means some error condition we did not think was possible, and thus it is unknown.
Call GetDriverVersion at the beginning of your program to make sure it is using version 1.21.
Are you actually getting errorcode 1 returned by AIStreamRead, or some other errorcode that is interpreted as unknown by GetErrorString?
Do you get the error on your first call to AIStreamRead, or just somewhere in the middle of streaming?
Do you get the error from LJstream.exe?
What OS? Is the OS 32-bit or 64-bit? Is your application 32-bit or 64-bit?
Are you using direct DLL calls or the OCX?
Are you doing any threading? Does the problem go away if you have a simple linear program?
Does it make a difference whether you pass -1 to the stream calls or the specific Local ID?
Do you have only 1 U12 connected?
Here is the chunk of code from the U12 driver that can throw that error:
//Claim the streamInfo structure and make sure it belongs to this localID
result = WaitForSingleObject(hMutex,1000L);
if(result == WAIT_OBJECT_0)
if(streamInfo.localID == localID)
//we claimed the mutex and it is available
errorcode = NO_ERROR_LJ;
else //wrong localID
errorcode = UNKNOWN_ERROR_LJ;
if(streamInfo.localID == -1)
errorcode = streamInfo.errorcode;
for(m = 0; m < 4096; m++)
} //end else wrong localID