Windows API 裝置驅動管理與核心通訊

來源:互聯網
上載者:User

    關於驅動和核心的學習介紹,[2]中較為詳細。這裡只簡述。   

應用程式可以將裝置驅動程式載入入核心。可以對已經載入了的裝置驅動程式發送請求,進行控制或與核心程式進行通訊,傳輸資料。

裝置管理[1]

列舉裝置

SetupDiCreateDeviceInfoList函數建立一個空的裝置資訊列表。

SetupDiGetClassDevsEx函數擷取指定類型GUID的所有裝置的資訊列表。

SetupDiEnumDevieeInterfaces函數是從已經擷取的裝置介面列表資訊中擷取資訊並使用結構儲存,每調用一次會依次返回一個裝置介面的資訊。

    通過SetupDiEnumDeviceInterfaces函數所擷取的資訊還不夠豐富,將其作為參數,傳遞給SetupDiGetDeviceRegistryProperty和SetupDiGetDeviceInterfaceDetail等函數,可以擷取裝置介面資訊的細節。

    SetupDiCreateDeviceInfoList分配的記憶體需要通過Setup Di DestroyDeviceInfoList函數釋放記憶體。

監控裝置的載入和卸載

註冊“裝置通知”使用API函數RegisterDeviceNotification

    如果一個驅動程式需要和使用者態程式進行通訊,需要建立裝置對象和符號連結。所建立的符號連結與使用者態驅動控製程序使用CreateFile所開啟的裝置名稱需對應。

    建立裝置對象和符號串連使用函數IoCreateDevice和IoCreateSymbolicLink。

參考

[1] 精通Windows API 函數、介面、編程執行個體

[2] http://www.cnblogs.com/mydomain/category/264964.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.