2012-12-03 198 views
5

要獲得的GUID HID設備,我知道我能做到這一點:如何檢索USB設備接口GUID?

GUID myHidGuid; 
memset(&myHidGuid, 0, sizeof(GUID)); //allocate 
HidD_GetHidGuid(&myHidGuid); //define the HID GUID 

是否有一個功能類似HidD_GetHidGuid(),這將使我的GUID其他設備類?

我試圖確定是否連接了USB無線網絡適配器。我相信我想要GUID_DEVINTERFACE_NET,但我不知道如何檢索它。

+0

SetupDiCreateDeviceInfoList + SetupDiEnumDeviceInfo:http://msdn.microsoft.com/en-us/library/windows/hardware/ff541247%28v=vs.85%29.aspx –

+0

@HansPassant你能解釋一下嗎?它告訴我,你使用的方式是首先將GUID給予SetupDiCreateDeviceInfoList(),這使我回到了我開始的地方...... – fbo

+0

您選擇要枚舉的設備類型,它是一個「class guid」 。像GUID_DEVINTERFACE_NET –

回答

3

我不認爲你有類似的東西,這些ClassGUID的是由微軟決定名單是在這裏:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553426(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553428(v=vs.85).aspx

一個很好的例子將是這樣CodeProject article

+0

太糟糕了!我不得不這樣: \t \t'如果(USBtype == 1) \t \t { \t \t \t HidD_GetHidGuid(&myHidGuid); //定義HID GUID \t \t如果} \t \t否則(USBtype == 2) \t \t { \t \t \t myHidGuid = GUID_DEVINTERFACE_NET; //定義HID GUID \t \t}' 由於嘗試使用GUID_DEVINTERFACE_HID時發生鏈接器錯誤。我想要案件匹配:) 感謝您的鏈接! – fbo

+0

發佈了一些代碼,以及關於錯誤的更多細節,這聽起來很有趣 – garzanti

+0

僅供參考,設備**設置**類與設備**接口**類不一定相同,您發佈的鏈接是設備設置類,[這裏是設備接口類的列表](https://msdn.microsoft.com/en-us/library/windows/hardware/ff553412(v = vs.85).aspx)。你也可能會發現[這個頁面](https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setup-classes-versus-interface-classes)有趣的它也看起來像你張貼相同鏈接兩次。 – jrh