Hyper-V 可延伸交換器轉送內容資料類型
周遊 Hyper-V 可延伸交換器資料路徑的每個封包 NET_BUFFER_LIST 結構包含頻外 (OOB) 資料。 此資料會指定來自封包來源的來源埠,以及一或多個用於封包傳遞的目的地埠。 此 OOB 資料稱為 可延伸交換器轉送內容。
下列資料類型已宣告為存取封包 NET_BUFFER_LIST 結構內的可延伸交換器轉送內容:
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
這是包含封包轉送特性的 64 位聯集。 此資料包括來源埠的識別碼,以及封包來源來源的網路介面卡連線。 此資料也包含目的地埠陣列中可用的未使用元素數目。
可延伸的交換器延伸模組可以使用 NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL 宏來存取此資料。
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
這個結構會定義封包的目的地埠陣列。 此陣列中的每個元素都會格式化為 NDIS_SWITCH_PORT_DESTINATION 結構。
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY結構包含的成員,可指定元素總數的目前數目,以及陣列中所使用的元素數目。
可延伸的交換器擴充功能可以藉由呼叫 GetNetBufferListDestinations 函式來取得此陣列。 如果驅動程式為具有多個目的地埠的封包在陣列中新增或修改元素,則必須呼叫 UpdateNetBufferListDestinations 函式。 此函式會將這些變更認可至封包轉送內容中的目的地埠陣列。
注意 若要認可只有一個目的地埠的封包變更,驅動程式呼叫 AddNetBufferListDestination 函式會更有效率。
NDIS_SWITCH_PORT_DESTINATION
這個結構會定義封包的目的地埠。 對於具有單一目的地埠的封包,目的地埠陣列中只有一個 NDIS_SWITCH_PORT_DESTINATION 元素。 對於具有多個目的地埠的封包,陣列中有一或多個這些專案。
擴充交換器延伸模組呼叫 GetNetBufferListDestinations 以取得封包的目的地埠陣列之後,可以使用 NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX 宏來存取陣列中的個別元素。