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