我正在使用WinCE設備,該設備在MFC中爲它編寫了無線電管理器驅動程序。在Radio GUI代碼中,我可以看到具有被調用的特定IOCTL的函數Deviceiocontrol。但是,我無法跟蹤由此函數調用的特定代碼片段。有人能告訴我Deviceiocontrol是如何工作的嗎?跟蹤由DeviceioControl實現的功能
0
A
回答
3
DeviceIoControl通過使用文件句柄調用設備驅動程序。如果你想進入設備驅動程序本身,你必須使用內核調試器。
文件句柄表示一個內核對象,它由包含函數表的DEVICE_OBJECT結構組成。在IRP_MJ_DEVICE_CONTROL索引的此表中,驅動程序設置其句柄函數。然後該函數將被打包到IRP中的io控制參數調用。
0
您是否有IOCTL發送給驅動程序的源代碼?
您將句柄傳遞給DeviceIoControl
- 句柄通過調用CreateFile(L"XXX#:",...)
打開 - XXX是註冊表中設置的驅動程序的前綴。 #是加載時驅動程序提供的索引(也可以在註冊表中設置)。
要查看執行的功能,請搜索您在驅動程序源代碼中發送到DeviceIoControl
的IOCTL。您會在驅動程序的實現XXX_IoControl
中找到它。
相關問題
- 1. 在android中實現跟蹤路由功能
- 2. 跟蹤功能
- 3. 功能跟蹤WinForms
- 4. Haskell跟蹤功能
- 5. Codename One:實現跟蹤功能並執行計算
- 6. 跟蹤功能在Python
- 7. printf調試跟蹤功能
- 8. Gerrit跟蹤功能分支?
- 9. 內存跟蹤器功能
- 10. 跟蹤編輯器與「捕捉跟蹤」功能
- 11. C中的堆棧跟蹤功能
- 12. 連續幀中的跟蹤功能
- 13. 顯示自跟蹤實體,由狀態
- 14. Java實現跟蹤的誤差記錄
- 15. 如何實現的Marketo跟蹤代碼
- 16. DeviceIoControl錯誤1錯誤的功能
- 17. MapKit:跟蹤路由
- 18. 如何在Django中實現點擊流或點擊跟蹤器功能?
- 19. 功能手機跟蹤應用程序
- 20. 跟蹤運行什麼功能
- 21. 跟蹤點擊通話移動功能
- 22. 依賴關係跟蹤功能
- 23. 如何跟蹤jQuery拖放功能
- 24. TypeInitializationException設置ServicePointManager.ServerCertificateValidationCallback當跟蹤功能
- 25. Matlab GUI面部跟蹤功能
- 26. 跟蹤二郎功能 - 短形式
- 27. NHibernate如何實現更改跟蹤?
- 28. 人臉跟蹤和虛擬現實
- 29. 如何實現一個跟蹤欄
- 30. 在TFS 2012中實現更改跟蹤
謝謝!恐怕我不知道如何使用內核調試器。我可以看到Radio Manager的代碼,我相信RadioManager_IOControl(Rmgr * context,IOCTL _...,BYTE * pInBuffer,DWORD inSize,BYTE * pOutBuffer,DWORD outSize,DWORD * pOutSize)(在無線電驅動程序中)的功能是deviceiocontrol稱爲什麼。我的問題是deviceiocontrol在其參數列表中有Rmgr的句柄,而設備驅動程序的RadioManager_IOControl在其參數列表中有一個指向Rmgr結構的指針。我無法追蹤這個結構是如何填充的。 – ame 2010-04-21 13:13:36
'Rmgr *'是您傳遞給'DeviceIoControl'的設備句柄。當你調用'CreateFile'時,這個句柄被填充。它的人口確切的方式是驅動程序/實現特定的。每次驅動程序的XXX_Open被調用時,它可能會被填充,並且可能在驅動程序的XXX_Init期間被填充,並且可能僅僅是驅動程序返回的虛擬句柄。特定驅動程序 – Shaihi 2010-04-25 05:53:47