次の方法で共有


OID_SWITCH_NIC_RESTORE

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

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

解説

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

拡張機能は、拡張可能スイッチ NIC のランタイムデータを所有している場合、次の方法でこのデータを復元します:

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

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

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

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

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

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

拡張機能が 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