[英]ioreg list multiple dext
我已經使用 DriverKit 和 USBDriverKit 編寫了一個似乎運行良好的系統擴展(在開發人員模式下運行,SIP 關閉,...仍在等待權利)。
當我插入 USB 設備並在終端中輸入ioreg | grep com.myinc.mydriver
ioreg | grep com.myinc.mydriver
我看到一個條目:
+-o IOUserServer(com.myinc.mydriver ... registered, matched, active, busy 0 (0ms), retain 13
我拔下設備並執行另一個ioreg
,我得到了相同的但保留9。
如果我插入我的設備,那么另一個ioreg
現在會顯示 2 個條目(前一個條目和一個新條目)。
這是正常的嗎? 為什么上一個還活躍?
在我的 dex 中,我檢查我的 Stop 和 free 函數是否被調用,我想不出我錯過了什么。
有人可以向我解釋這一點或向我指出我可能忘記做的事情嗎? 保留 9 與我在代碼中所做的事情有什么關系嗎?
我想出了我的問題,並會在這里留下答案,以防它對其他人有幫助...
我使用CopyInterface()
(來自IOUSBHostDevice
)獲得了我的IOUSBHostInterface
對象。 然后在這個對象上我調用了Open()
。
在我的Stop()
實現中,我在接口對象上調用了Close()
但我忘記調用release
。
現在,當我斷開設備連接時,一旦調用了所有free()
函數,在控制台中我就會收到消息“沒有服務,正在退出”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.