共用方式為


網路適配器支援

本主題描述 NDIS 迷你埠驅動程式可以管理的網路適配器類型,以及不同 NIC 類型如何影響驅動程式傳輸網路數據的方式。

向 NDIS 報告 NIC 的中型類型

若要報告 NIC 的中型類型,迷你埠驅動程式會在 NdisMSetMiniportAttributes 函式的 MiniportAttributes 參數中傳遞一個指向 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 結構的指標。 初始化期間,迷你埠驅動程式會從其 MiniportInitializeEx 函式呼叫 NdisMSetMiniportAttributes。 Miniport 驅動程式應該在設定 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 結構中的註冊屬性之後,以及在設定任何其他屬性之前,設定 MiniportAttributes 屬性。 設定 MiniportAttributes 屬性是必要的。 驅動程式在設定 MiniportAttributes 屬性時,會將 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 結構中的 MediaType 成員設定為適當的媒體類型。

當上層 NDIS 協定驅動程式呼叫 NdisOpenAdapterEx 以系結至指定的小型埠配接器時,會提供其可操作的媒介類型清單。 NDIS 會使用迷你埠驅動程式和通訊協定驅動程式的信息來設定系結。 此系結提供在驅動程式堆疊上下傳輸網路數據的路徑。

實體網路介面卡

迷你埠驅動程式完成以初始化迷你埠適配卡及傳送和接收網路數據的步驟,取決於實體裝置的功能,如下所示。

  • NDIS-WDM 網卡

    使用 NDIS-WDM NIC,例如 USB 型 NIC,迷你埠驅動程式使用 DMA 管理記憶體的方式對 NDIS 並不重要,而且它看不到它。

  • 總線主控 DMA 網路介面卡

    這些 NIC 可以透過內部 DMA 控制器直接存取主機記憶體,以管理網路與主機記憶體之間的數據傳輸,而不需使用主機 CPU。

    若要傳送,迷你埠驅動程式會設定網路介面卡來映射傳出緩衝區。 迷你端口驅動程式接著會讓裝置開始從此記憶體進行傳輸。 NIC DMA 控制器會將數據從共享系統記憶體傳輸到網路,並在傳送完成時中斷 CPU。 若要接收,DMA 控制器會在通知主機中斷之前,先將連入數據傳輸到主機記憶體。

    總線主控 DMA NIC 通常會有一個內建環形緩衝器,小型端口驅動程式會將其對應至系統記憶體中的一組緩衝區。 一般而言,NIC 可以進行程序設計,以有效率地處理數個封包。 管理這類 NIC 的迷你埠驅動程式通常支援多套件傳送和接收,因為 NIC 可以有效率地處理數個封包,進而改善其 I/O 輸送量。

  • 非總線主控DMA網路介面卡

    目前,非總線主控 DMA 網卡包含下列項目:

    • 系統 DMA NIC

      管理這類 NIC 的迷你埠驅動程式會使用系統 DMA 控制器來管理往返網路的封包數據傳輸。 數據傳輸需要主機 CPU 的合作。

虛擬 NIC 和迷你埠

在虛擬機中,NDIS 迷你埠驅動程式可以管理僅限軟體的資源作為虛擬迷你埠,也可以管理代表硬體資源的虛擬 NIC。 下表說明虛擬迷你埠與虛擬 NIC 之間的差異。

屬性 虛擬迷你埠 虛擬 NIC
定義 對應到由軟體枚舉的 PnP 裝置的 NDIS 小型埠驅動程式。 由主機 OS Hypervisor 管理的 NIC。 Hypervisor 讓虛擬機認為它有一些硬體,但實體世界中實際上沒有這類硬體。
有中斷 是的
可以使用 DMA 是的
被...創造或毀滅... 虛擬客體作業系統 主機OS
可以在客體 VM 外部連線 是的