導航:首頁 > 器材知識 > c如何獲取usb設備名

c如何獲取usb設備名

發布時間:2023-08-11 23:35:07

❶ linux os :在c程序中如何獲取未掛載的usb設備信息,然後將其掛載到制定路徑

fdisk -l

希望對你有幫助。

❷ 向電腦上插入一個USB設備,怎麼在設備管理器中查看剛才插入的設備的名字,好多啊

先把不插u盤的設備管理器打開,插上之後再對比之。稍後,我截圖說明……

這個u盤做了一個虛擬光碟機,一個是u盤啟動,所以顯示了兩個設備。

❸ 怎樣獲得已連接到計算機的USB設備的列表

HANDLE MyHid::OpenDevice(bool isOverLapped)
{
GUID hidGuid;
HidD_GetHidGuid(&hidGuid);
hDevInfo = SetupDiGetClassDevs(&hidGuid,NULL,NULL,(DIGCF_PRESENT | DIGCF_DEVICEINTERFACE));
if (hDevInfo == INVALID_HANDLE_VALUE)
{
return INVALID_HANDLE_VALUE;
}
SP_DEVICE_INTERFACE_DATA devInfoData;
devInfoData.cbSize = sizeof (SP_DEVICE_INTERFACE_DATA);
int deviceNo = 0;
SetLastError(NO_ERROR);
while (GetLastError() != ERROR_NO_MORE_ITEMS)
{
if (SetupDiEnumInterfaceDevice (hDevInfo,0,&hidGuid,deviceNo,&devInfoData))
{
ULONG requiredLength = 0;
(hDevInfo,&devInfoData,NULL,0,&requiredLength,NULL);

PSP_INTERFACE_DEVICE_DETAIL_DATA devDetail = (SP_INTERFACE_DEVICE_DETAIL_DATA*) malloc (requiredLength);
devDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
if(!(hDevInfo,&devInfoData,devDetail,requiredLength,NULL,NULL))
{
free(devDetail);
SetupDiDestroyDeviceInfoList(hDevInfo);
return INVALID_HANDLE_VALUE;
}
if (isOverLapped)
{
hidHandle = CreateFile(devDetail->DevicePath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
}
else
{
hidHandle = CreateFile(devDetail->DevicePath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
}
free(devDetail);
if (hidHandle==INVALID_HANDLE_VALUE)
{
SetupDiDestroyDeviceInfoList(hDevInfo);
free(devDetail);
return INVALID_HANDLE_VALUE;
}
_HIDD_ATTRIBUTES hidAttributes;
if(!HidD_GetAttributes(hidHandle, &hidAttributes))
{
CloseHandle(hidHandle);
SetupDiDestroyDeviceInfoList(hDevInfo);
return INVALID_HANDLE_VALUE;
}
if (USB_VID == hidAttributes.VendorID&& USB_PID == hidAttributes.ProctID)
{
m_isDevicesOK=true;
break;
}
else
{
CloseHandle(hidHandle);
++deviceNo;
m_isDevicesOK=false;
}
}
}
SetupDiDestroyDeviceInfoList(hDevInfo);
return hidHandle;
}

#define USB_VID 0x08fe
#define USB_PID 0x0003

//自定義的設備號.

你可以在設備管理器裡面找到你自己的需要的 ID 然後 但看實例句柄.

❹ 如何使用C語言編程讀取從電腦usb介面的信息。

可以打開USB介面上的設備,或者打開USB控制器,那涉及到windows的驅動訪問。
一般訪問設備使用CreateFile打開設備,然後使用ReadFile/WriteFile讀寫設備。
比如:
HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...); //指定以非同步方式打開
BYTE bBuffer[100];
OVERLAPPED o = { 0 };
o.Offset = 345;

BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, &o); // bReadDone 指定I/O請求是不是以同步方式打開
DWORD dwError = GetLastError();

if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //非同步方式打開
// The I/O is being performed asynchronously; wait for it to complete
WaitForSingleObject(hFile, INFINITE);
bReadDone = TRUE;
}
if (bReadDone) {
// o.Internal contains the I/O error
// o.InternalHigh contains the number of bytes transferred
// bBuffer contains the read data
} else {
// An error occurred; see dwError
}

閱讀全文

與c如何獲取usb設備名相關的資料

熱點內容
2子宮有哪些固定裝置各起什麼作用 瀏覽:589
機械攪拌通風發酵罐是怎麼工作的 瀏覽:455
青島巨型拋光設備哪裡有 瀏覽:144
天然氣管道外面的閥門在哪個位置 瀏覽:396
crv儀表盤出現扳手什麼意思 瀏覽:618
開料機自動上下料裝置 瀏覽:7
萊州東升閥門廠有限公司 瀏覽:379
單個軸承晃動怎麼解決 瀏覽:739
cad煤氣管道閥門 瀏覽:992
店透視工具箱准嗎 瀏覽:438
機械製造廠有多少車間 瀏覽:116
帕薩特儀表燈暗怎麼調 瀏覽:286
超聲波為什麼不能用塑料模 瀏覽:566
慈溪健身器材怎麼樣 瀏覽:381
汽車儀表顯示六角花表示什麼 瀏覽:709
小區為什麼沒有水表閥門 瀏覽:76
製冷設備屬於什麼材質 瀏覽:501
車用工具箱的價格 瀏覽:248
閥門開關處漏小怎麼辦 瀏覽:228
不需要皮帶傳動裝置防護 瀏覽:832