共用方式為


從實體網路介面卡轉送 NDIS 狀態指示

本主題討論可延伸交換器轉送延伸模組用來從基礎實體配接器轉送 NDIS 狀態指示的方法。 一或多個基礎實體介面卡可以系結至 Hyper-V 可延伸交換器的外部網路介面卡。

例如,外部網路介面卡可以系結至 NDIS 多工器 (MUX) 中繼驅動程式的虛擬迷你埠邊緣。 MUX 驅動程式會系結至主機上一或多個實體網路的小組。 此設定稱為 可延伸交換器小組

在此設定中,可延伸交換器擴充功能會公開給小組中的每個網路介面卡。 這可讓擴充功能管理小組中個別網路介面卡的組態和使用。 例如,轉送延伸模組可以將傳出封包轉送至個別配接器,以支援透過小組的負載平衡容錯移轉 (LBFO) 解決方案。 管理可延伸交換器小組的轉送延伸模組稱為 小組提供者。 如需小組提供者的詳細資訊,請參閱 小組提供者延伸模組

下圖顯示 NDIS 6.40 (Windows Server 2012 R2) 及更新版本中基礎實體網路介面卡的 NDIS 狀態指示 Hyper-V 可延伸交換器控制路徑。

此圖顯示 NDIS 6.40 和更新版本實體網路介面卡中 NDIS 狀態指示的 Hyper-V 可延伸交換器控制路徑。

下圖顯示 NDIS 6.30 (Windows Server 2012) 基礎實體網路介面卡的 NDIS 狀態指示 Hyper-V 可延伸交換器控制路徑。

此圖顯示 NDIS 6.30 實體網路介面卡中 NDIS 狀態指示的 Hyper-V 可延伸交換器控制路徑。

注意 在可延伸交換器介面中,NDIS 篩選驅動程式稱為 可延伸交換器延伸模組 ,而驅動程式堆疊稱為 可延伸交換器驅動程式堆疊

可延伸的交換器介面會轉送基礎實體配接器所產生的 NDIS 狀態指示。 如果外部網路介面卡系結至可延伸交換器小組,NDIS 狀態指示是由 MUX 驅動程式的虛擬介面卡邊緣所產生。 否則,狀態指示是由系結至外部網路介面卡的單一實體網路介面卡所產生。

當 NDIS 狀態指示到達可延伸交換器介面時,它會封裝 NDIS_SWITCH_NIC_STATUS_INDICATION 結構內的指示。 然後,可延伸交換器的迷你埠邊緣會發出包含此結構的 NDIS_STATUS_SWITCH_NIC_STATUS 指示。

轉送延伸模組收到 NDIS 狀態指示之後,就可以轉送原始指示資料或修改資料,再轉送指示。

注意 只有轉送延伸模組可以在轉送狀態指示之前修改資料。 如需此類型擴充功能的詳細資訊,請參閱 轉送延伸模組

轉送延伸模組可以從系結至可延伸交換器外部網路介面卡的任何基礎實體介面卡修改和轉送狀態指示。 一般而言,擴充功能會發出這些狀態指示,以變更基礎實體介面卡的公告硬體卸載功能。 例如,延伸模組可以修改和轉送下列硬體卸載類型的狀態指示:

  • 網際網路通訊協定安全性 (IPsec)

  • 虛擬機器佇列 (VMQ)

  • 單一根 I/O 虛擬化 (SR-IOV)

如果轉送延伸模組正轉送 NDIS 狀態指示,則必須以下列方式設定 NDIS_SWITCH_NIC_STATUS_INDICATION 結構的成員:

  • SourcePortId成員必須設定為外部網路介面卡所連接的埠識別碼。 外部網路介面卡會系結至一或多個實體介面卡。 如需詳細資訊,請參閱 外部網路介面卡

  • SourceNicIndex成員必須設定為 NDIS_SWITCH_DEFAULT_NIC_INDEX。 這可讓狀態指示解譯為源自系結至外部網路介面卡的整個可延伸交換器小組。

  • DestinationPortId成員必須設定為NDIS_SWITCH_DEFAULT_PORT_ID

  • DestinationNicIndex成員必須設定為NDIS_SWITCH_DEFAULT_NIC_INDEX

  • StatusIndication成員必須設定為NDIS_STATUS_INDICATION結構的指標。 這個結構包含封裝 NDIS 狀態指示的資料。

當轉送延伸模組發出封裝的 NDIS 狀態指示時,它必須遵循下列步驟:

  1. 擴充功能會呼叫 ReferenceSwitchNic 來遞增外部網路介面卡的參考計數器。 這可確保可延伸交換器介面不會在參考計數器為非零時刪除網路介面卡連線。

    當擴充功能呼叫 ReferenceSwitchNic時,它會將 SwitchPortId 參數設定為 SourcePortId 成員所指定的值。 延伸模組也會將 SwitchNicIndex 參數設定為 SourceNicIndex 成員所指定的值。

    注意 如果 ReferenceSwitchNic 未傳回NDIS_STATUS_SUCCESS,則無法發出封裝的 NDIS 狀態指示。

  2. 擴充功能會呼叫 NdisFIndicateStatus 來轉送封裝的狀態通知。

    注意如果延伸模組正轉送封裝的 NDIS 狀態指示,它必須在呼叫其 FilterStatus函式的內容中呼叫NdisFIndicateStatus

  3. 在 NdisFIndicateStatus 傳回之後,擴充功能會呼叫DereferenceSwitchNic來清除來源或目的地網路介面卡連線的參考計數器。 擴充功能會將 SwitchPortIdSwitchNicIndex 參數設定為呼叫 ReferenceSwitchNic中使用的相同值。

如需 MUX 驅動程式的詳細資訊,請參閱 NDIS MUX 中繼驅動程式