导航:首页 > 器材知识 > 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设备名相关的资料

热点内容
什么自来水阀门最耐用 浏览:212
2018印刷机械展什么时间 浏览:62
动漫机械奥特曼叫什么 浏览:529
福特福克斯仪表台充电器座怎么拆 浏览:12
肉桂酸熔点实验的装置图 浏览:249
上汽大通G10仪表里程怎么调 浏览:455
挂车发电机轴承怎么换 浏览:187
净水器接燃气阀门 浏览:714
1t机械硬盘供电多少 浏览:637
上楼搬运助力机械装置 浏览:913
自动剪线绷缝机装置 浏览:671
2子宫有哪些固定装置各起什么作用 浏览:589
机械搅拌通风发酵罐是怎么工作的 浏览:455
青岛巨型抛光设备哪里有 浏览:144
天然气管道外面的阀门在哪个位置 浏览:396
crv仪表盘出现扳手什么意思 浏览:618
开料机自动上下料装置 浏览:7
莱州东升阀门厂有限公司 浏览:379
单个轴承晃动怎么解决 浏览:739
cad煤气管道阀门 浏览:992