OID_SRIOV_READ_VF_CONFIG_BLOCK

上にあるドライバーは、指定された PCI Express (PCIe) 仮想関数 (VF) 構成ブロックからデータを読み取るために、OID_SRIOV_READ_VF_CONFIG_BLOCKのオブジェクト識別子 (OID) メソッド要求を発行します。

上位ドライバーは、ネットワーク アダプターの PCIe 物理関数 (PF) のミニポート ドライバーにこの OID メソッド要求を発行します。 この OID メソッド要求は、シングルルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする PF ミニポート ドライバーに必要です。

NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、呼び出し元によって割り当てられたバッファーへのポインターが含まれています。 このバッファーは、次のようにフォーマットされます:

  • この構造体の先頭から VF 構成ブロックから読み取られたデータを含むバッファー内の位置までのオフセットをバイト単位で格納する NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 構造体。

  • 指定した VF 構成ブロックからデータを読み取るための追加のバッファー領域。

解説

VF 構成ブロックは、PF ミニポート ドライバーと VF ミニポート ドライバー間のバックチャネルコミュニケーションに使用されます。 IHVは、ミニポート・ドライバー用に1つ以上の VF 構成ブロックを定義できます。 各 VF 構成ブロックには、IHV で定義された形式、長さ、およびブロック ID があります。

各 VF 構成ブロックからのデータは、PF および VF ミニポート ドライバーによってのみ使用されます。

OID_SRIOV_READ_VF_CONFIG_BLOCKの OID メソッド要求を発行する前に、上位ドライバーは、次の方法で NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 構造体のメンバーを設定する必要があります:

  • VFId メンバーを、情報の読み取り元となる VF の識別子に設定します。

  • BlockId メンバーを、情報の読み取り元となる VF 構成ブロックの識別子に設定します。

  • Length メンバーを構成ブロックから読み取るバイト数に設定します。

  • メンバーを、指定された VF 構成ブロックから読み取られたデータを格納するバッファー内のオフセットへ BufferOffset メンバーを( InformationBuffer メンバーによって参照される)に設定します。 このオフセットは、 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 構造体の先頭からバイト単位で指定されます。

OID_SRIOV_READ_VF_CONFIG_BLOCKの OID メソッド要求を処理する場合、PF ミニポート ドライバーは、次のガイドラインに従う必要があります:

  • PF ミニポート ドライバーは、 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 構造体の VFId メンバーによって指定された VF に、以前に割り当てられているリソースがあることを確認する必要があります。 PF ミニポート ドライバーは、 OID_NIC_SWITCH_ALLOCATE_VF メソッド要求の間に VF のリソースを割り当てます。 指定した VF のリソースが割り当てられていない場合、ドライバーは OID 要求に失敗する必要があります。

  • PF ミニポートドライバーは、 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 構造体の BlockId メンバーが有効なVFコンフィギュレーション ブロックを指定していることを確認する必要があります。 そうでない場合、ドライバーは OID 要求を失敗する必要があります。

シングル ルート I/O 仮想化 (SR-IOV) インターフェイス内のバックチャネル コミュニケーションの詳細については、 SR-IOV PF/VF バックチャネル コミュニケーション を参照してください。

状態コードを返します

PF ミニポート ドライバーは、OID_SRIOV_READ_VF_CONFIG_BLOCKのメソッド要求の次の状態コードのいずれかを返します:

状態コード 説明

NDIS_STATUS_SUCCESS

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

NDIS_STATUS_NOT_SUPPORTED

ミニポート ドライバーがシングル ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートしていないか、インターフェイスの使用が有効になっていません。

NDIS_STATUS_INVALID_PARAMETER

NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 構造体の1つ以上のメンバーに無効な値があります。

NDIS_STATUS_INVALID_LENGTH

情報バッファーが短すぎました。 ミニポートドライバーは、 NDIS_OID_REQUEST 構造体の DATA.METHOD_INFORMATION.BytesNeeded メンバーに必要最小限のバッファーサイズを設定する必要があります。

NDIS_STATUS_FAILURE

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

要件

バージョン

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

ヘッダー

Ntddndis.h (Ndis.h を含む)

関連項目


NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE