共用方式為


Hyper-V 可擴展的交換器儲存操作

當 Hyper-V 子分割停止、儲存或即時移轉時,會儲存分割區的運行時間狀態。 在儲存作業期間,Hyper-V 可延伸交換器擴充功能可以節省有關可延伸交換器網路適配器 (NIC) 的運行時間數據。

在 Hyper-V 子分割上執行儲存作業時,擴充交換介面會通知擴充套件有關此作業。 延伸模組會透過下列物件識別碼 (OID) 要求收到通知:

OID_SWITCH_NIC_SAVE
可延伸交換器介面會發出可延伸交換器的通訊協定邊緣,以在可延伸交換器 NIC 的儲存作業期間發出這個 OID。 當它處理這個 OID 要求時,延伸模組會傳回 NIC 的運行時間數據。 儲存執行時的數據之後,它會透過 OID_SWITCH_NIC_RESTORE的 OID 設定請求進行還原。

當它收到 OID_SWITCH_NIC_SAVE 方法要求時,擴充功能可以執行下列其中一項:

  • 如果延伸模組有要儲存的運行時間數據,它會初始化 NDIS_SWITCH_NIC_SAVE_STATE 結構,並設定各種成員,例如 ExtensionId 成員,以識別本身及其儲存的數據。 此延伸模組也會從 結構的開頭開始儲存 NDIS_SWITCH_NIC_SAVE_STATE 結構中的數據,然後以 NDIS_STATUS_SUCCESS 完成 OID 方法要求。

  • 如果 NDIS_SWITCH_NIC_SAVE_STATE 結構未提供足夠的緩衝區大小,則列舉在NDIS_OBJECT_HEADER Size 成員中以保存運行時間狀態,擴充功能會將方法結構的 BytesNeeded 字段設定為NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1加上保存數據所需的緩衝區數量, 並使用 NDIS_STATUS_BUFFER_TOO_SHORT完成 OID。 OID 將會以所需的尺寸重新發出。

  • 如果延伸模組沒有要儲存的執行時間資料,則必須呼叫 NdisFOidRequest。 這會將 OID 方法要求轉送至可延伸交換器驅動程式堆疊中的基礎延伸模組。 如需此程式的詳細資訊,請參閱 NDIS 篩選驅動程式中的 OID 要求

如需此 OID 請求的詳細資訊,請參閱 處理 OID_SWITCH_NIC_SAVE 請求

OID_SWITCH_NIC_SAVE_COMPLETE
可延伸交換器介面會通知可延伸交換器的通訊協定邊界,以便在完成可延伸交換器 NIC 的運行時間資料儲存作業時發出此 OID。

此 OID 要求會通知延伸模組,儲存作業只針對指定的可延伸交換器 NIC 完成。

如需此 OID 要求的詳細資訊,請參閱 處理 OID_SWITCH_NIC_SAVE_COMPLETE 要求

在儲存執行階段資料的操作期間,可延伸交換器的通訊協定邊緣會針對Hyper-V 子分割區的網路介面發出 OID_SWITCH_NIC_SAVE 的 OID 要求,並發出 OID_SWITCH_NIC_SAVE_COMPLETE 。 如果停止或即時移轉多個 Hyper-V 子分割區,通訊協定邊緣會針對每個網路介面連線發出個別OID_SWITCH_NIC_SAVE集和OID_SWITCH_NIC_SAVE_COMPLETE要求。

注意 可擴展交換器的協定介面不會交錯進行相同 NIC 運行中資料的保存作業。 只有在先前的儲存作業在同一個 NIC 上完成之後,通訊協定邊緣才會啟動 NIC 的運行時間資料儲存作業。 不過,協定邊緣在進行一個 NIC 的儲存作業時,可能會啟動另一個 NIC 的儲存作業。 因此,強烈建議延伸模組以非交錯方式執行儲存作業。 例如,延伸模組不應該假設新的儲存作業無法在另一個NIC上啟動,即使在不同的NIC上仍有正在進行中的儲存作業。