次の方法で共有


OID_SWITCH_NIC_RESTORE

Hyper-V 拡張可能スイッチのプロトコル エッジは、拡張可能スイッチ ポートとそのネットワーク アダプター接続用に復元できるランタイム データについて拡張可能スイッチ拡張機能に通知するために、OID_SWITCH_NIC_RESTOREのオブジェクト識別子 (OID) セット要求を発行します。

NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_SWITCH_NIC_SAVE_STATE 構造体へのポインターが含まれています。 この構造体は、拡張可能スイッチのプロトコル エッジによって割り当てられます。

備考

OID_SWITCH_NIC_RESTOREの OID セット要求を受信すると、拡張可能スイッチ拡張機能は、最初にランタイム データを所有しているかどうかを判断する必要があります。 拡張機能は、NDIS_SWITCH_NIC_SAVE_STATE 構造体の ExtensionId メンバーの値を、拡張機能が自身を識別するために使用する GUID 値と比較することによってこれを行います。

拡張機能が拡張可能スイッチ ポートの実行時データを所有している場合、このデータは次のように復元されます。

  1. 拡張機能は、SaveData メンバー内のランタイム データを拡張機能によって割り当てられたストレージにコピーします。

    NDIS_SWITCH_NIC_SAVE_STATE 構造体の PortId メンバーの値は、実行時データが保存された時点の PortId 値と異なる場合があります。 これは、あるホストから別のホストへのライブ マイグレーション中に実行時データが保存された場合に発生する可能性があります。 ただし、拡張可能スイッチ ポートの構成は、ライブ マイグレーション中に保持されます。 これにより、拡張機能は、新しい PortId 値を使用して、ランタイム データを拡張可能スイッチ ポートに復元できます。

  2. 拡張機能は、NDIS_STATUS_SUCCESSを使用して OID セット要求を完了します。

拡張機能が指定したランタイム データを所有していない場合、拡張機能は NdisFOidRequest呼び出して、この OID セット要求を拡張可能スイッチ ドライバー スタック内の基になる拡張機能に転送します。 この場合、拡張機能は、OID 要求に関連付けられている NDIS_SWITCH_NIC_SAVE_STATE 構造体を変更しないでください。

OID_SWITCH_NIC_RESTORE セット要求が拡張可能スイッチのミニポート エッジによって受信された場合は、NDIS_STATUS_SUCCESSを使用して OID 要求を完了します。 これにより、拡張スイッチのプロトコル エッジに、ランタイム データを所有する拡張機能がないことを通知します。

実行時データを復元する方法の詳細については、「復元 Hyper-V 拡張可能スイッチ Run-Time データを参照してください。

拡張機能が OID セット要求に失敗した場合、拡張可能スイッチは復元操作全体に失敗します。 その結果、可能であれば、拡張機能は OID 要求の失敗を回避する必要があります。 たとえば、ランタイム データを復元するために必要なリソースを拡張機能が割り当てることができない場合、ランタイム データを復元せずに正常に機能できない場合、OID 要求は失敗します。 ただし、拡張機能がエラー状態から回復できる場合は、OID セット要求を失敗させるべきではありません。

戻り値の状態コード

拡張機能は、OID_SWITCH_NIC_RESTOREの OID セット要求を完了すると、次のいずれかの状態コードを返します。

状態コード 形容

NDIS_STATUS_SUCCESS

OID 要求が正常に完了しました。

NDIS_STATUS_xxx

その他の理由で要求が失敗しました。

必要条件

バージョン

NDIS 6.30 以降でサポートされています。

ヘッダ

Ntddndis.h (Ndis.h を含む)

関連項目


NDIS_OID_REQUEST

NDIS_SWITCH_NIC_SAVE_STATE

NdisFOidRequest