NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO回呼函式 (ndis.h)

Hyper-V 可延伸交換器擴充功能會呼叫 CopyNetBufferListInfo 函式,將頻外 (OOB) 將內容從來源封包的 NET_BUFFER_LIST 結構轉送至目的地封包 的NET_BUFFER_LIST 結構。 此內容包含可延伸的交換器來源埠和網路適配器資訊。 也可以複製可延伸交換器目的地埠資訊。

語法

NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;

NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST DestNetBufferList,
  [in]      PNET_BUFFER_LIST SrcNetBufferList,
  [in]      UINT32 Flags
)
{...}

參數

[in] NdisSwitchContext

NDIS_SWITCH_CONTEXT值,其中包含附加延伸模組的可延伸交換器模組句柄。 當擴充功能呼叫 NdisFGetOptionalSwitchHandlers 時,此句柄會透過 NdisSwitchContext 參數傳回。

[in, out] DestNetBufferList

複製可延伸交換器轉送內容之目的地封包之 NET_BUFFER_LIST 結構的指標。

[in] SrcNetBufferList

複製可延伸交換器轉送內容的來源封包 NET_BUFFER_LIST 結構的指標。

[in] Flags

UINT32 值。 指定NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS旗標時,函式會將可延伸交換器目的地埠從來源封包複製到目的地封包。

來源封包 NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 聯集內所包含的數據一律會複製到目的地封包中的可延伸交換器轉送內容。 此數據報括來源埠識別碼,以及封包來源來源網路適配器聯機的索引。 根據複製到目的地封包的可延伸交換器目的地埠數目, NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 聯集的 NumAvailableDestinations 成員會在目的地封包中更新。

如需轉送內容的詳細資訊,請參閱 Hyper-V 可延伸交換器轉送內容

傳回值

如果呼叫成功,函式會傳回NDIS_STATUS_SUCCESS。 否則,它會傳回 Ndis.h 中定義的NDIS_STATUS_Xxx 錯誤碼。

備註

可延伸的交換器擴充功能會呼叫 CopyNetBufferListInfo 函式,將 OOB 數據從來源封包複製到目的地封包。 此資料包含下列各項:

  • 來源封包NET_BUFFER_LIST結構NetBufferListInfo 陣列的數據。
  • 來源封包的可延伸交換器轉送內容 NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 數據。
  • 來源封包可延伸交換器轉送內容之可延伸交換器目的地埠的數據。
    注意 只有在指定NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS旗標時,才會複製此數據。
     
在擴充功能呼叫 CopyNetBufferListInfo 之前,它必須遵循下列步驟來準備目的地封包 的NET_BUFFER_LIST 結構:
  1. 延伸模組必須先初始化衍生自來源封包NET_BUFFER_LIST結構的目的地封包NET_BUFFER_LIST結構。

    例如,擴充功能可以呼叫 NdisAllocateCloneNetBufferList 來建立來源封包的完整復本。 此延伸模組也可以呼叫 NdisAllocateFragmentNetBufferList ,以只建立來源封包片段的複本。 如需詳細資訊,請參閱 衍生NET_BUFFER_LIST結構

  2. 擴充功能必須呼叫 AllocateNetBufferListForwardingContext 函式,以配置目的地封包的可延伸交換器轉送內容。 此數據用來儲存 OOB 可延伸交換器轉送資訊,例如封包的來源和目的地埠。
注意 如果擴充功能正在建立或複製來源封包,則延伸模組之前必須呼叫封包的 AllocateNetBufferListForwardingContext 函式。 擴充功能透過可延伸交換器驅動程式堆疊篩選的來源封包已經包含配置的可延伸交換器轉送內容。
 

規格需求

需求
最低支援的用戶端 NDIS 6.30 和更新版本支援。
目標平台 桌面
標頭 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

AllocateNetBufferListForwardingContext

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisFGetOptionalSwitchHandlers