OID_SWITCH_NIC_SAVE
Hyper-V 可延伸交換器的通訊協定邊緣會在作業期間發出OID_SWITCH_NIC_SAVE的對象識別元(OID)方法要求,以節省可延伸交換器埠及其網路適配器聯機的運行時間數據。 延伸模組會傳回此數據,以便稍後儲存和還原運行時間數據。 儲存運行時間數據之後,它會透過 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 將會以所需的大小重新發出。
此延伸模組會以自己的標識符和名稱填入 ExtensionId 和 ExtensionFriendlyName 欄位,並使用 NDIS_STATUS_SUCCESS 完成 OID 方法要求。 這會導致可延伸切換的通訊協定邊緣發出另一個 OID 方法要求,以允許延伸模組傳回更多儲存數據,或允許其他延伸模組向下堆棧儲存自己的數據。
注意 如果延伸模組沒有運行時間數據要儲存,則必須呼叫 NdisFOidRequest,將這個 OID 方法要求轉送至可延伸交換器驅動程式堆疊中的基礎延伸模組。 如需此程式的詳細資訊,請參閱 NDIS 篩選驅動程式中的 OID 要求。
Hyper-V 可延伸的交換器會在發出 OID 之前,先填入 Header、PortId、NicIdex、SaveDataSize 和 SaveDataOffset 字段。 延伸模組無法修改這些欄位。
OID_SWITCH_NIC_SAVE的 OID 方法要求最終會由可延伸交換器的基礎迷你埠邊緣處理。 這個 OID 方法要求已由可延伸交換器的迷你埠邊緣接收之後,它會使用 NDIS_STATUS_SUCCESS 完成 OID 要求。 這會通知可延伸交換器的通訊協定邊緣,指出已查詢可延伸交換器驅動程式堆疊中的所有延伸模組,以取得運行時間數據。 擴充交換器的通訊協定邊緣接著發出 OID 集合要求,OID_SWITCH_NIC_SAVE_COMPLETE 以完成儲存作業。
如需如何儲存可延伸交換器埠運行時間資料的詳細資訊,請參閱 儲存 Hyper-V 可延伸交換器 Run-Time 資料。
傳回狀態代碼
可延伸參數擴充功能會針對 OID_SWITCH_NIC_SAVE 的 OID 方法要求傳回下列其中一個狀態代碼。
狀態代碼 | 描述 |
---|---|
NDIS_STATUS_BUFFER_TOO_SHORT |
信息緩衝區的長度對於 NDIS_SWITCH_NIC_SAVE_STATE 及其相關聯的運行時間數據而言太小。可延伸參數延伸模組必須設定 DATA。METHOD_INFORMATION。BytesNeededNDIS_OID_REQUEST 結構中的成員,以達到所需的最小緩衝區大小。 |
NDIS_STATUS_SUCCESS |
如果延伸模組傳回要儲存的運行時間數據,則會傳回此狀態。 |
NDIS_STATUS_Xxx |
要求因其他原因而失敗。 |
可延伸參數的基礎迷你埠邊緣會針對 OID_SWITCH_NIC_SAVE 的 OID 方法要求傳回下列狀態代碼。
狀態代碼 | 描述 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求已順利完成。 |
要求
版本 |
NDIS 6.30 和更新版本支援。 |
頁眉 |
Ntddndis.h (包括 Ndis.h) |