阅读:1001回复:0
请指教关于createfile!+
各位大虾好:在下有一个问题请教。我想打开一个USB鼠标设备,可怎么也打不开,一到CreateFile时返回值就是0xffffffff,请那位大虾就俺,感激非常!!代码如下!!!
HANDLE GetDeviceViaInterface(GUID *pGuid,DWORD instance) { HDEVINFO info=SetupDiGetClassDevs (pGuid,NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE); if(info==INVALID_HANDLE_VALUE) { printf(\"NO HDEVINFO avaliable for this GUID\\n\"); return NULL; } SP_INTERFACE_DEVICE_DATA ifdata; ifdata.cbSize=sizeof(ifdata); if(!SetupDiEnumDeviceInterfaces (info,NULL,pGuid,instance,&ifdata)) { printf(\"No SP_INTERFACE_DEVICE_DATA available for this GUID instance\\n\"); SetupDiDestroyDeviceInfoList(info); return NULL; } DWORD ReqLen; SetupDiGetDeviceInterfaceDetail (info,&ifdata,NULL,0,&ReqLen,NULL); PSP_INTERFACE_DEVICE_DETAIL_DATA ifDetail= (PSP_INTERFACE_DEVICE_DETAIL_DATA)(new char[ReqLen]); if(ifDetail==NULL) { SetupDiDestroyDeviceInfoList(info); return NULL; } ifDetail->cbSize=sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA); if(!SetupDiGetDeviceInterfaceDetail(info,&ifdata,ifDetail,ReqLen,NULL,NULL)) { SetupDiDestroyDeviceInfoList(info); delete ifDetail; return NULL; } HANDLE rv=CreateFile(ifDetail->DevicePath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL); delete ifDetail; SetupDiDestroyDeviceInfoList(info); return rv; } |
|
|