GET_VIRTUAL_FUNCTION_PROBED_BARS コールバック関数 (wdm.h)

GetVirtualFunctionProbedBars ルーチンは、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートするデバイスの PCI Express (PCIe) ベース アドレス レジスタ (BAR) の値を返します。

GetVirtualFunctionProbedBars は、PCI バス ドライバーによって実行されたクエリの後にデバイスによって報告された BAR 値を返します。 このクエリは、デバイスに必要なメモリまたは I/O アドレス空間を決定します。

構文

GET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;

NTSTATUS GetVirtualFunctionProbedBars(
  [in, out] PVOID Context,
  [out]     PULONG BaseRegisterValues
)
{...}

パラメーター

[in, out] Context

インターフェイス固有のコンテキスト情報へのポインター。 呼び出し元は、インターフェイスの PCI_VIRTUALIZATION_INTERFACE 構造体の コンテキスト メンバーとして渡される値を渡します。

[out] BaseRegisterValues

ULONG 値の配列へのポインター。 GetVirtualFunctionProbedBars ルーチンは、デバイスの各 BAR の値を返します。

GetVirtualFunctionProbedBars は、この配列内の最大 PCI_TYPE0_ADDRESSES 値を返します。

戻り値

GetVirtualFunctionProbedBars ルーチンは、次のいずれかの NTSTATUS 値を返します。

リターン コード 形容
STATUS_SUCCESS 操作が正常に完了しました。
STATUS_INVALID_DEVICE_STATE デバイスは、SR-IOV インターフェイスをサポートしていません。

備考

PCI バス ドライバー。 は、Hyper-V 親パーティションの管理オペレーティング システムで実行され、デバイスの各 BAR のメモリまたは I/O アドレス空間の要件を照会します。 PCI バス ドライバーは、最初にバス上のアダプターを検出するときに、このクエリを実行します。

この BAR クエリを使用して、PCI バス ドライバーは次を決定します。

  • BAR がデバイスでサポートされているかどうか。

  • BAR がサポートされている場合、BAR に必要なメモリまたは I/O アドレス空間の量。

PCI ドライバーは、次のようにこの BAR クエリを実行します。

  1. PCI バス ドライバーは、0xFFFFFFFFを BAR に書き込みます。

  2. PCI バス ドライバーは、デバイスが必要とするメモリまたはアドレス空間を決定する BAR を読み取ります。 値が 0 の場合は、デバイスが BAR をサポートしていないことを示します。

GetVirtualFunctionProbedBars ルーチンは、GUID_PCI_VIRTUALIZATION_INTERFACE インターフェイスによって提供されます。

GetVirtualFunctionProbedBars ルーチン には、次の注意事項が適用されます。

  • SR-IOV インターフェイスでは、PCIe VF の BAR が、BAR のメモリ ブロックまたは I/O アドレス空間のサイズを決定するためのプロトコルに準拠している必要はありません。 そのため、ゲスト オペレーティング システムで実行される仮想 PCI (VPCI) ドライバーは、物理デバイス上の BAR と同等のサイズを使用してサイズを決定します。 VPCI ドライバーは、GetVirtualFunctionProbedBars ルーチンを呼び出して、この情報を取得します。

  • VPCI ドライバーでは、物理デバイスの起動後に、各 BAR のメモリまたは I/O アドレス空間のサイズが必要です。 その時点で、PCI ドライバーは、BAR の現在の値を変更せずに、デバイスで BAR クエリを実行できません。 したがって、GetVirtualFunctionProbedBars ルーチンが VPCI ドライバーによって呼び出されると、PCI ドライバーは、BAR クエリ中に取得した BAR 情報を返します。 PCI ドライバーは、デバイスがバスで最初に検出されたときにこのクエリを実行しました。

必要条件

要件 価値
サポートされる最小クライアント Windows Server 2012 以降のバージョンの Windows でサポートされています。
ターゲット プラットフォーム の デスクトップ
ヘッダー wdm.h (Wdm.h を含む)
IRQL PASSIVE_LEVEL

関連項目

PCI_VIRTUALIZATION_INTERFACE