OID_SRIOV_BAR_RESOURCES
NDIS は、PCIe 仮想関数 (VF) の PCI Express (PCIe) ベース アドレス レジスタ (BAR) に割り当てられたメモリ リソースを決定するOID_SRIOV_BAR_RESOURCESのオブジェクト識別子 (OID) メソッド要求を発行します。
NDIS は、ネットワーク アダプターの PCIe 物理関数 (PF) のミニポート ドライバーにこの OID メソッド要求を発行します。 この OID メソッド要求は、シングルルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする PF ミニポート ドライバーに必要です。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、バッファーへのポインターが含まれています。 このバッファーには、次の構造体が含まれています:
PF ミニポート ドライバーがリソース情報を返す VF と BAR を指定する NDIS_SRIOV_BAR_RESOURCES_INFO 構造体。
CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体に従う NDIS_SRIOV_BAR_RESOURCES_INFO 構造体。 CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体には、指定した BAR に割り当てられたメモリ リソースに関する情報が含まれています。
解説
NDIS は、システムの物理アドレスと VF BAR に割り当てられたメモリ リソースの長さを取得するOID_SRIOV_BAR_RESOURCESの OID メソッド要求を発行します。 OID メソッド要求を発行する前に、NDIS は NDIS_SRIOV_BAR_RESOURCES_INFO 構造体を次のようにフォーマットします:
NDIS は、VF に関連付けられている識別子に NDIS_SRIOV_BAR_RESOURCES_INFO 構造体の VFId メンバーを設定します。
NDIS は、 NDIS_SRIOV_BAR_RESOURCES_INFO 構造体の BarIndex メンバーに、指定された VF 用 BAR インデックスを設定します。 BAR インデックスは、PCI 構成スペースの BAR のテーブル内にあるレジスターのオフセットです。
NDIS は、 NDIS_SRIOV_BAR_RESOURCES_INFO 構造体の BarResourcesOffset メンバーを、 NDIS_SRIOV_BAR_RESOURCES_INFO 構造体の先頭から CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体までのオフセットを、バイト単位で設定します。
注 プロトコルドライバーやフィルター ドライバーなどの上位ドライバーは、PF ミニポート ドライバーにOID_SRIOV_BAR_RESOURCESの OID メソッド要求を発行できません。
PFミニポートドライバーが OID メソッド要求を受信すると、ドライバーは、 NDIS_OID_REQUEST 構造体の InformationBuffer メンバー内の CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体を フォーマットすることによって 指定されたBARのリソースを返します。 ドライバーは、指定された VF の BAR に関連付けられているシステム ハードウェア リソースによって、 CM_PARTIAL_RESOURCE_DESCRIPTOR 構造をフォーマットします。
注 ドライバーは、 CmResourceTypeMemory のリソースタイプの構造体をフォーマットする必要があります。.
状態コードを返します
PF ミニポート ドライバーは、OID_SRIOV_BAR_RESOURCESのメソッド要求の次の状態コードのいずれかを返します。
状態コード | 説明 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求は正常に完了しました。 |
NDIS_STATUS_NOT_SUPPORTED |
ミニポート ドライバーは、シングル ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートしていないか、インターフェイスを使用できません。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_BAR_SWITCH_VF_INFO_ARRAY 構造体の1つ以上のメンバーに無効な値が含まれています。 |
NDIS_STATUS_INVALID_LENGTH |
情報バッファーは、 (sizeof(NDIS_SRIOV_BAR_RESOURCES_INFO) + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR)サイズ未満です。 PF ミニポート ドライバーは、NDIS_OID_REQUEST 構造体の DATA.METHOD_INFORMATION.BytesNeeded メンバーに 必要な最小バッファサイズを設定する必要があります。 |
NDIS_STATUS_FAILURE |
その他の理由で要求に失敗しました。 |
要件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |