為了方便開發人員為Windows編寫驅動程序,微軟昨天發布了一個開源框架驅動程序模塊框架(DMF)。 這個新框架將允許開發人員編寫簡單和結構化的Windows驅動程序框架(WDF)驅動程序并在驅動程序之間共享代碼。

在為 Surface 設備 開發 驅動程序時,Microsoft Devices團隊開發了此框架供內部使用。 微軟 現在將其作為開源發布,以幫助其他OEM以最高的效率和可維護性,開發和維護高質量的驅動程序。微軟還解釋了傳統WDF與這款新的基于DMF的WDF驅動程序之間的一些主要差異。

這些差異在于:設備上下文(以綠色顯示)獨立存在于每個模塊和客戶端驅動程序特定的代碼中。每個較小的設備上下文僅包含該模塊所需的元素。沒有模塊可以訪問另一個模塊的設備上下文;WDF回調(以紅色顯示)現在在每個模塊和客戶端特定代碼中獨立存在。 WDF調用客戶端驅動程序。 DMF攔截調用并將其調度到實例化模塊樹中的每個模塊;每個模塊按其認為合適的方式處理每個回調。最后,DMF將回調調度到客戶端驅動程序的回調。

最后,請注意箭頭。箭頭專門顯示模塊和客戶端特定代碼之間的流程。在此示例中,特定于客戶端的代碼只能與三個模塊通信:ACPI,Button和Stream。它無法與GPIO,FIFO,列表或線程通信。 ACPI無法與FIFO等進行通信。即使不查看源代碼,我們也很清楚數據如何在此驅動程序中流動。

微軟開源驅動程序模塊框架