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 を発行する前に、構造体の ヘッダー 、 PortId 、 NicIdex 、 SaveDataSize および 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 を含む) |