周工,你好 我自己做的目标板,已经加载了usb驱动,通过EasyUSB.Dll 可以正常通讯。现在我想做一套自己的动态库,已经通过setupdi*函数取得D12设备的路径,也可以使用CreateFile正常打开,现在我想跟D12的几个端点进行数据通讯,但只有PIPE0能打开,其他的PIPE1,PIPE2等都无法用CreateFile打开,返回错误:系统资源不足,无法完成请求的服务,
请问这是什么原因,我该如何解决?谢谢
驱动是EasyARM2200 配套光盘提供的D12Test.sys
以下是部分代码:
HANDLE hPipe ; char str[256]=""; char sTemp[256]; strcpy( str, functionClassDeviceData->DevicePath);
for(int i=0;i<10;i++) { sprintf( sTemp, "PIPE%d", i ); strcat( str, sTemp ); hPipe = CreateFile( str, 0,//GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, // no SECURITY_ATTRIBUTES structure OPEN_EXISTING, // No special create flags 0, // No special attributes NULL); // No template file if( hPipe == INVALID_HANDLE_VALUE ) { printf( "
%s open FAILED", sTemp ); } else { printf( "
%s open SUCC", sTemp ); DWORD dwRealWrite; //WriteFile( hPipe, "Hello Hello", 10, &dwRealWrite, NULL ); //DeviceIoControl( hPipe,
CloseHandle( hPipe ); } } |