如何使用設備ID獲得USB設備的硬件ID ...我使用的是vC++ 6.0,操作系統是xp。 是否有可能通過使用wmi。如何使用設備ID獲取USB硬件ID?
4
A
回答
0
,因爲你承擔的硬件ID你可能會有些困惑。 IoGetDeviceProperty(yourDevice, DevicePropertyHardwareID, ...)
返回一個列表。
+1
這不是內核級功能嗎?我們可以從用戶模式調用這個函數嗎?我認爲以Io開頭並返回NTSTATUS的函數僅適用於司機... – armanali 2014-12-04 18:46:51
6
最後,我解決了我的問題...感謝您的回覆... 我在這裏發佈代碼,它可能對某人有用......通過此代碼,我們可以獲得所有設備的hardwareids到我們的系統..
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
DWORD i;
// Create a HDEVINFO with all present devices.
hDevInfo = SetupDiGetClassDevs(NULL,
0, // Enumerator
0,
DIGCF_PRESENT | DIGCF_ALLCLASSES);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
//Error handling here.
printf("Error Details:[%s]\n","INVALID_HANDLE_VALUE");
return 1;
}
// Enumerate through all devices in Set.
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,
&DeviceInfoData);i++)
{
DWORD DataT;
LPTSTR buffer = NULL;
LPTSTR hwbuffer=NULL;
DWORD buffersize = 0;
//
// Call function with null to begin with,
// then use the returned buffer size (doubled)
// to Alloc the buffer. Keep calling until
// success or an unknown failure.
//
// Double the returned buffersize to correct
// for underlying legacy CM functions that
// return an incorrect buffersize value on
// DBCS/MBCS systems.
//
while (!SetupDiGetDeviceRegistryProperty(
hDevInfo,
&DeviceInfoData,
SPDRP_HARDWAREID,
&DataT,
(PBYTE)buffer,
buffersize,
&buffersize))
{
if (GetLastError() ==
ERROR_INSUFFICIENT_BUFFER)
{
// Change the buffer size.
if (buffer) LocalFree(buffer);
// Double the size to avoid problems on
// W2k MBCS systems per KB 888609.
buffer = (char*)LocalAlloc(LPTR,buffersize * 2);
}
else
{
//Error handling here.
//printf("Error Details:[%s]\n",GetLastError());
break;
}
}
printf("Test Result:[%s]\n",buffer);
if (buffer) LocalFree(buffer);
}
if (GetLastError()!=NO_ERROR &&
GetLastError()!=ERROR_NO_MORE_ITEMS)
{
// Error handling here.
printf("Error Details:[%s]\n",GetLastError());
return 1;
}
// Cleanup
SetupDiDestroyDeviceInfoList(hDevInfo);
return 0;
+0
適用於我。請標記爲解決方案。 – armanali 2014-12-04 18:46:02
相關問題
- 1. 使用c獲取usb硬件或實例ID#
- 2. Flex,獲取已插入USB設備的USB ID
- 3. 如何使用Python提取硬件ID?
- 4. 使用wpf獲取硬件ID
- 5. 使用JQuery或Javascript獲取設備ID
- 6. 如何獲取Firefox OS設備ID?
- 7. 如何在Android中獲取設備ID?
- 8. 如何在actionscript3中獲取設備ID?
- 9. 如何獲取android設備唯一ID?
- 10. 如何獲取android設備ID?
- 11. 如何獲得在Mac OS中安裝的USB設備的設備ID,供應商ID和產品ID cocoa
- 12. 獲取設備唯一ID
- 13. 獲取設備ID在IOS
- 14. 以編程方式獲取USB存儲設備實例ID(唯一ID)
- 15. 如何使用Mono for windows訪問WMI以獲取硬件ID?
- 16. 如何獲取設備序列號(非設備ID)
- 17. 如何從音頻設備ID獲取音頻設備號?
- 18. 如何獲取PCI設備的設備ID?
- 19. 如何使用導軌獲取移動設備ID?
- 20. 如何使用USB從設備獲取文件
- 21. 多個USB到RS485 FTDI設備ID
- 22. USB複合設備實例ID
- 23. 如何爲WebRTC(javascript)獲取多個USB設備(攝像頭)的唯一ID?
- 24. 從當前捕獲獲取設備ID
- 25. Android:如何使用adb命令獲取設備硬件信息?
- 26. 如何從直接聲音設備中找到硬件設備ID?
- 27. 如何獲取USB設備列表
- 28. 如何在C#中讀取USB(PnP)設備的WMI數據(本例中爲硬件ID)?
- 29. UnityEngine .NET 3.5獲取硬件ID不System.Management
- 30. 在Android中獲取NFC硬件ID
你能發表一些你已經有的細節嗎? – 2009-10-12 20:44:00
請注意,設備ID本身已經是硬件ID。請參閱http://msdn.microsoft.com/en-us/library/dd567931.aspx – MSalters 2009-10-13 14:41:31