2011-02-28 99 views
2

我正在嘗試使用供應商提供的軟件包訪問物理設備。由GUID打開設備

在早期版本的軟件包,他們有用戶通過DOS符號名稱打開設備:

hDevice= CreateFile("\\\\.\\DevName", 
    GENERIC_READ | GENERIC_WRITE, 
    0, NULL, OPEN_ExiSTING, 0, NULL); 

然而,他們發佈這就要求設備的GUID打開一個新的版本和DEFINE_GUID是包含在其標題中。此更新還禁用了打開設備的舊方法。

他們沒有更新自己的資料來說明如何使用GUID打開設備,我一直沒能找到任何與我的谷歌福很有幫助。

當然必須有一個例子表示某處如何打開使用GUID的裝置?

回答

3

你可能搞明白了現在,但WinObj是圍繞對象管理器命名戳非常方便。一旦你找到了你要找的對象的名字,那麼獲得公開權利應該是非常簡單的。

6

最有可能的供應商給你一個「設備接口GUID」。 要獲取可用於CreateFile()的名稱,必須枚舉具有該GUID的所有設備。這通過致電SetupDiGetClassDevs()與國旗DIGCF_DEVICEINTERFACE完成。結果列表由設備信息集(HDEVINFO)的句柄表示。然後,您將該句柄反饋到SetupDiEnumDeviceInterfaces()的重複呼叫中以便列表。對於每個列表項,您必須致電SetupDiGetDeviceInterfaceDetail()以接收相應的設備路徑。