模擬了一個USB設備,暫且可認為是U盤,設備中的資料存放在檔案中,驅動安裝完成的時候會創建資料檔案。一個電腦可以安裝多個這樣的設備。
問題:每一個設備都有自己的資料檔案,怎么才能讓第2個,第3個設備創建資料檔案,不與第1個沖突,之后讀取的時候不會讀取錯誤。
uj5u.com熱心網友回復:
如果是一個真實的USB設備,資料是存在設備中,重啟電腦什么的,資料不會丟失。現在我是通過驅動虛擬了一個設備,資料不能總在記憶體中,每次資料變化就寫入檔案中保存。uj5u.com熱心網友回復:
如果是真實的U盤設備,依次插入的時候,會按照累加的思想依次被分配好sda,sdb,sdc...sdaa,所以如果兩個一模一樣的U盤,最后區分是通過UUID來做的
如果是虛擬設備,那么資料保存的檔案其實也可以查看類似的思路,創建各自對應的檔案:
1.如果簡單依靠加載順序,那么在打亂加載順序后時會出現檔案與設備不符的情況
2.設備的加載是依靠自定義假的設備資源,那么定義的硬體資源是否一致,如果你這里加載設備所有資訊一致,其實不存在區分的概念。如果不一致,在創建檔案的時候,應該加入這些資訊來區分
uj5u.com熱心網友回復:
我想在驅動安裝完之后獲取一下 設備實力路徑,這個沒安裝一個USB設備,是不一樣的,這樣作為創建資料檔案的一個依據,不知道可不可以?
uj5u.com熱心網友回復:
我的驅動是 HidRegisterMinidriver 注冊的微型驅動,使用IoGetDeviceObjectPointer 回傳失敗。有沒有辦法在當前的驅動代碼中獲取到 當前設備的特定值?比如硬體id .
uj5u.com熱心網友回復:
設備實體路徑在驅動代碼中使用哪個函式能獲取到?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/108500.html
標籤:驅動開發/核心開發
