網路介面支援
本主題描述 NDIS 迷你埠驅動程式可以管理的網路介面卡類型 (NDIS 迷你埠驅動程式) ,以及不同 NIC 類型如何影響驅動程式傳輸網路資料的方式。
向 NDIS 報告 NIC 的中型類型
若要報告 NIC 的中型類型,迷你埠驅動程式會將指標傳遞至NdisMSetMiniportAttributes函式之MiniportAttributes參數中的NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES結構。 迷你埠驅動程式會在初始化期間從MiniportInitializeEx函式呼叫NdisMSetMiniportAttributes。 迷你埠驅動程式在設定NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES結構中的註冊屬性之後,以及在設定任何其他屬性之前,應該設定MiniportAttributes屬性。 設定 MiniportAttributes 屬性是必要的。 驅動程式會在設定MiniportAttributes屬性時,將NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES結構的MediaType成員設定為適當的媒體類型。
當過度運作的 NDIS 通訊協定驅動程式呼叫 NdisOpenAdapterEx 以系結至指定的迷你埠配接器時,它會提供可操作的中型類型清單。 NDIS 會使用迷你埠驅動程式和通訊協定驅動程式的資訊來設定系結。 此系結提供在驅動程式堆疊上和下移網路資料的路徑。
實體 NIC
迷你埠驅動程式完成以初始化迷你埠介面卡和傳送和接收網路資料的步驟,可以視實體裝置的功能而定,如下所示。
NDIS-WDM NIC
使用 NDIS-WDM NIC,例如 USB 型 NIC,迷你埠驅動程式使用 DMA 管理記憶體的方式對 NDIS 並不重要,而且看不到它。
匯流排主機 DMA NIC
這些 NIC 可以透過內部 DMA 控制器直接存取主機記憶體,以管理網路與主機記憶體之間的資料傳輸,而不需使用主機 CPU。
若要傳送,迷你埠驅動程式會設定 NIC 來對應傳出緩衝區。 接著,迷你埠驅動程式會讓裝置從這個記憶體開始傳輸。 NIC DMA 控制器會將資料從共用系統記憶體傳輸到網路,並在傳送完成時中斷 CPU。 若要接收,DMA 控制器會在通知主機中斷之前,先將傳入的資料傳輸到主機記憶體。
匯流排主機 DMA NIC 通常會有上線通道緩衝區,迷你埠驅動程式會對應至系統記憶體中的一組緩衝區。 一般而言,NIC 可以程式設計成有效率地處理數個封包。 管理這類 NIC 的迷你埠驅動程式通常支援多套件傳送和接收,因為 NIC 可以有效率地處理數個封包,進而改善其 I/O 輸送量。
Nonbusmaster DMA NIC
目前,非busmaster DMA NIC 包含下列專案:
系統 DMA NIC
管理這類 NIC 的迷你埠驅動程式會使用系統 DMA 控制器來管理對網路傳送封包資料的傳輸。 資料傳輸需要主機 CPU 的合作。
虛擬 NIC 和迷你埠
在虛擬機器中,NDIS 迷你埠驅動程式可以將僅限軟體的資源當做虛擬迷你埠來管理,也可以管理代表硬體資源的虛擬 NIC。 下表說明虛擬迷你埠與虛擬 NIC 之間的差異。
屬性 | 虛擬迷你埠 | 虛擬 NIC |
---|---|---|
定義 | 對應至軟體列舉 PnP 裝置的 NDIS 迷你埠驅動程式。 | 由主機 OS Hypervisor 管理的 NIC。 Hypervisor 會讓虛擬機器認為它有一些硬體,但實體世界中沒有這類硬體。 |
有中斷 | 否 | 是 |
可以使用 DMA | 否 | 是 |
已建立或終結... | 客體 OS | 主機 OS |
可以在客體 VM 外部連線 | 否 | 是 |