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構造体の Context メンバーとして渡される値を渡します。
[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 クエリを実行します。
PCI バス ドライバーは、0xFFFFFFFFを BAR に書き込みます。
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 クエリを実行できません。 したがって、 VPCI ドライバーによって GetVirtualFunctionProbedBars ルーチンが呼び出されると、PCI ドライバーは、BAR クエリ中に取得した BAR 情報を返します。 PCI ドライバーは、デバイスがバスで最初に検出されたときにこのクエリを実行しました。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Server 2012 以降のバージョンの Windows でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | wdm.h (Wdm.h を含む) |
IRQL | PASSIVE_LEVEL |