共用方式為


OID_SWITCH_NIC_SAVE

Hyper-V 可延伸交換器的通訊協定邊緣會在作業期間發出物件識別碼 (OID) 方法要求 OID_SWITCH_NIC_SAVE,以節省可延伸交換器埠及其網路介面卡連線的執行時間資料。 延伸模組會傳回此資料,以便稍後儲存和還原執行時間資料。 儲存執行時間資料之後,它會透過 OID_SWITCH_NIC_RESTORE的 OID 集合要求還原。

NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_SWITCH_NIC_SAVE_STATE結構的指標。 這個結構是由可延伸交換器的通訊協定邊緣所配置。

備註

當它收到 OID_SWITCH_NIC_SAVE 的 OID 方法要求時,可延伸的交換器延伸模組會執行下列動作來節省執行時間資料:

  • 延伸模組會從結構開頭的SaveDataOffset位元組開始,儲存NDIS_SWITCH_NIC_SAVE_STATE結構中的資料。

  • 如果提供的 SaveDataSize 不足以保存所需的儲存資料,擴充功能會將方法結構的 BytesNeeded 欄位設定為NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1加上保存資料所需的緩衝區數量,並使用 NDIS_STATUS_BUFFER_TOO_SHORT完成 OID。 系統會以所需的大小重新發出 OID。

  • 此延伸模組會以自己的識別碼和名稱填入 ExtensionIdExtensionFriendlyName 欄位,並使用 NDIS_STATUS_SUCCESS完成 OID 方法要求。 這會導致可延伸交換器的通訊協定邊緣發出另一個 OID 方法要求,以允許延伸模組傳回更多儲存資料,或允許其他延伸模組向下堆疊儲存自己的資料。

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

Hyper-V 可延伸交換器會在發出 OID 之前,先填入結構的 HeaderPortIdNicIdexSaveDataSizeSaveDataOffset 欄位。 延伸模組無法修改這些欄位。

OID_SWITCH_NIC_SAVE的 OID 方法要求最終會由可延伸交換器的基礎迷你埠邊緣處理。 在可延伸交換器的迷你埠邊緣收到這個 OID 方法要求之後,它會使用 NDIS_STATUS_SUCCESS 完成 OID 要求。 這會通知可延伸交換器交換器堆疊中的所有擴充功能已查詢執行時間資料的通訊協定邊緣。 可延伸交換器的通訊協定邊緣接著發出 OID_SWITCH_NIC_SAVE_COMPLETE 的 OID 集合要求,以完成儲存作業。

如需如何儲存可延伸交換器埠執行時間資料的詳細資訊,請參閱 儲存 Hyper-V 可延伸交換器Run-Time資料

傳回狀態碼

可延伸的交換器擴充功能會針對 OID_SWITCH_NIC_SAVE 的 OID 方法要求,傳回下列其中一個狀態碼。

狀態碼 描述

NDIS_STATUS_BUFFER_TOO_SHORT

資訊緩衝區的長度對於NDIS_SWITCH_NIC_SAVE_STATE及其相關聯的執行時間資料而言太小。可延伸的交換器延伸模組必須設定DATA。METHOD_INFORMATION。NDIS_OID_REQUEST 結構中的 BytesNeeded成員,以達到所需的最小緩衝區大小。

NDIS_STATUS_SUCCESS

如果延伸模組傳回要儲存的執行時間資料,則會傳回此狀態。

NDIS_STATUS_Xxx

要求因其他原因而失敗。

可延伸交換器的基礎迷你埠邊緣會針對 OID_SWITCH_NIC_SAVE 的 OID 方法要求傳回下列狀態碼。

狀態碼 描述

NDIS_STATUS_SUCCESS

OID 要求已成功完成。

規格需求

版本

NDIS 6.30 和更新版本支援。

標頭

Ntddndis.h (包括 Ndis.h)

另請參閱


NDIS_OID_REQUEST

NDIS_SWITCH_NIC_SAVE_STATE

NdisFOidRequest

OID_SWITCH_NIC_RESTORE

OID_SWITCH_NIC_SAVE_COMPLETE