共用方式為


NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE回呼函式 (ndis.h)

SetNetBufferListSource 函式會設定由 NET_BUFFER_LIST 結構所指定之封包的 Hyper-V 可延伸交換器來源埠標識碼和網路適配器索引。

語法

NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;

NDIS_STATUS NdisSwitchSetNetBufferListSource(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
       PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_SWITCH_PORT_ID PortId,
  [in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}

參數

[in] NdisSwitchContext

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

NetBufferList

單一封包 之NET_BUFFER_LIST 結構的指標。

注意 這個結構必須包含先前透過呼叫 AllocateNetBufferListForwardingContext 函式所配置的可延伸交換器轉送內容。 如需可延伸交換器轉送內容的詳細資訊,請參閱 Hyper-V 可延伸交換器轉送內容
 

[in] PortId

NDIS_SWITCH_PORT_ID值,指定可延伸交換器上來源埠的唯一標識碼。

[in] NicIndex

NDIS_SWITCH_NIC_INDEX值,指定連接到 PortId 參數所指定可延伸交換器埠之網路適配器的索引。

如需NDIS_SWITCH_NIC_INDEX值的詳細資訊,請參閱 網路適配器索引值

注意 此參數必須指定處於連線狀態之網路適配器的索引值。 無法指定處於已建立或中斷連線狀態之網路適配器的索引值。 如需網路連線狀態的詳細資訊,請參閱 Hyper-V 可延伸交換器埠和網路適配器狀態
 

傳回值

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

備註

可延伸交換器擴充功能會呼叫 SetNetBufferListSource 函式,以在封包 的NET_BUFFER_LIST 結構中設定來源埠標識碼和網路適配器索引。 擴充功能會針對下列類型的封包執行此動作:

  • 延伸模組已配置用於傳送或接收作業的新封包。
    注意 在擴充功能呼叫 SetNetBufferListSource 以取得已配置的封包之前,它必須呼叫 AllocateNetBufferListForwardingContext
     
  • 延伸模組從其篩選的原始封包複製的重複封包。 擴充功能會呼叫 NdisAllocateCloneNetBufferList 來複製封包。
在這兩種情況下,新的或重複的封包都會將其來源埠標識符設定為 NDIS_SWITCH_DEFAULT_PORT_ID ,並將來源網路適配器索引設定為 NDIS_SWITCH_DEFAULT_NIC_INDEX。 擴充功能會呼叫 SetNetBufferListSource 函式,以變更封包 NET_BUFFER_LIST 結構中的來源埠標識碼和網路適配器索引。

例如,具有NDIS_SWITCH_DEFAULT_PORT_ID來源埠 標識符的封 包受到信任,並略過許多可延伸的交換器埠原則。 這些原則包括訪問控制清單 (ACL) 和服務品質 (QoS) 。 如果擴充功能指定封包的非預設來源埠,這可讓該埠的原則套用至封包。

注意 由於來源埠標識碼為 NDIS_SWITCH_DEFAULT_PORT_ID 的封包受到信任,因此擴充功能在產生封包流量時,必須非常小心使用此來源埠標識符。 如需針對來源埠建議使用 NDIS_SWITCH_DEFAULT_PORT_ID 的詳細資訊,請參閱 管理 Hyper-V 可延伸交換器來源埠數據
 
如需封包傳送和接收作業的詳細資訊,請參閱 篩選模塊傳送和接收作業

規格需求

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

另請參閱

AllocateNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers