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 に加えて保存データを保持するために必要なバッファーの量を設定し、OID をNDIS_STATUS_BUFFER_TOO_SHORT で完了します。 この OID は、必要なサイズで再発行されます。

  • 拡張機能は、 ExtensionId フィールドと ExtensionFriendlyName フィールドに独自の識別子と名前を設定し、NDIS_STATUS_SUCCESS で OID メソッド要求を完了します。 これにより、拡張可能スイッチのプロトコル エッジが別の OID メソッド要求を発行して、拡張機能が保存データをさらに返すか、スタックの下にある他の拡張機能が独自のデータを保存できるようにします。

拡張機能に保存するランタイムデータがない場合は、 NdisFOidRequest を呼び出して、この OID メソッド要求を拡張可能スイッチ ドライバー スタック内の下位拡張機能に転送する必要があります。 この手順の詳細については、 NDIS フィルター ドライバーでの OID 要求のフィルタリング を参照してください。

Hyper-V 拡張可能スイッチは、OID を発行する前に、構造体の ヘッダーPortIdNicIdexSaveDataSize および SaveDataOffset フィールドを設定します。 拡張機能は、これらのフィールドを変更できません。

OID_SWITCH_NIC_SAVE の OID メソッド要求は、最終的には拡張可能スイッチの下位ミニポート エッジによって処理されます。 この OID メソッド要求は、拡張可能スイッチのミニポート エッジによって受信された後、NDIS_STATUS_SUCCESS を使用して OID 要求を完了します。 これにより、拡張可能スイッチ ドライバー スタック内のすべての拡張機能に対してランタイムデータのクエリが実行されたことが、拡張可能スイッチのプロトコル エッジに通知されます。 その後、拡張可能スイッチのプロトコル エッジは、OID 設定要求 OID_SWITCH_NIC_SAVE_COMPLETE を発行して保存操作を完了します。

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

状態コードを返します

拡張可能スイッチ拡張機能は、OID_SWITCH_NIC_SAVEの OID メソッド要求の次のいずれかの状態コードを返します。

状態コード 説明

NDIS_STATUS_BUFFER_TOO_SHORT

情報バッファーの長さが NDIS_SWITCH_NIC_SAVE_STATE とそれに関連付けられているランタイムデータに対して小さすぎます。拡張可能スイッチ拡張機能は、 NDIS_OID_REQUEST 構造体の DATA.METHOD_INFORMATION.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