使用者模式 NetAdapterCx
從 Windows 11 版本 24H2 開始,NetAdapterCx 可讓您撰寫 使用者模式驅動程式架構 (UMDF) 網路適配器驅動程式。 NetAdapterCx 中的 UMDF API 與 KMDF 版本一致,可讓您將以 KMDF 為基礎的用戶端驅動程式轉換成 UMDF,幾乎不需要變更程式代碼。
使用者模式 NetAdapterCx 驅動程式的優點
建立 UMDF NetAdapterCx 驅動程序可提供下列優點:
增強的系統穩定性:使用者模式驅動程式只能存取其進程的位址空間。 如果當機,它不會影響系統。 驅動程式可以自動重新啟動,快速還原連線。
改善安全性:使用者模式應用程式無法直接存取重要系統資源或執行特殊許可權指示。 因此,驅動程式安全性中的任何缺口都不會危害核心的完整性。
簡化的開發:使用者模式驅動程式可以增強開發人員的工作流程。 不需要等待測試機器在當機後重新啟動,而且部署可以更快速地使用相同的機器進行開發和測試。
增加創新與彈性:核心模式驅動程序開發限制通常會限制創新。 使用者模式驅動程式提供更具彈性的環境,可讓開發人員使用可能不相容或難以在內核模式中實作的進階功能和工具。
使用者模式 NetAdapterCx 的限制
下列功能目前僅適用於 KMDF 型 NetAdapterCx 驅動程式。
直接記憶體存取 (DMA)
使用者模式尚未提供 DMA。
UMDF 驅動程式必須將 NET_ADAPTER_RX_CAPABILITIES 中的 DmaCapabilities 成員設定為 NULL,並將NET_ADAPTER_TX_CAPABILITIES設定為 NULL。
用戶端緩衝區配置
用戶端網路數據緩衝區管理無法在使用者模式中使用。 UMDF NetAdapterCx 驅動程式必須依賴系統來配置傳輸和接收數據路徑的數據緩衝區。
當您的 UMDF 驅動程式使用 NET_ADAPTER_RX_CAPABILITIES 結構公告其硬體數據緩衝區功能時,它必須:
- 將NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE設定為 NetRxFragmentBufferAllocationModeSystem。
- 將NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE設定為 NetRxFragmentBufferAttachmentModeSystem。
- 將NET_MEMORY_MAPPING_REQUIREMENT設定為 NetMemoryMappingRequirementNone。
將 KMDF NetAdapterCx 驅動程式轉換為 UMDF
若要以使用者模式運作,用戶端驅動程式只能使用屬於 UMDF 的核心 WDF API。 例如,客戶端驅動程式不得使用 KMDF 驅動程式專屬的任何 API。
若要將 KMDF NetAdapterCx 驅動程式轉換為 UMDF,請遵循如何將 KMDF 驅動程式轉換為 UMDF 2 驅動程式中的步驟。
NetAdapterCx 的 UMDF 和 KMDF 版本會共用相同的 主要版本號碼。