SRIOV_QUERY_PROBED_BARS_2 コールバック関数 (pcivirt.h)
指定された PCI Express SR-IOV 仮想関数 (VF) ベース アドレス レジスタ (BAR) から読み取られたデータに対して、値 -1 が最初に書き込まれた場合にクエリを実行します。
構文
SRIOV_QUERY_PROBED_BARS_2 SriovQueryProbedBars2;
NTSTATUS SriovQueryProbedBars2(
[in] PVOID Context,
[in] USHORT VfIndex,
[out] PULONG BaseRegisterValues
)
{...}
パラメーター
[in] Context
ドライバー定義コンテキストへのポインター。
[in] VfIndex
クエリ対象の VF の 0 から始まるインデックス。
[out] BaseRegisterValues
PCI デバイス内の BAR の数で囲まれた変数の配列へのポインター。
戻り値
操作が成功した場合は、STATUS_SUCCESSを返します。 それ以外の場合は、適切な NTSTATUS エラー コードを返します。
注釈
このコールバック関数は、物理関数 (PF) ドライバーによって実装されます。 これは、システムが指定された仮想関数の (VF) ベース アドレス レジスタから読み取る場合に呼び出されます。
PF ドライバーは、SRIOV_DEVICE_INTERFACE_STANDARD_2のQueryProbedBars_2 メンバーを設定し、WDF_QUERY_INTERFACE_CONFIG構造体を構成し、WdfDeviceAddQueryInterface を呼び出すことによって、その実装を登録します。
このコールバックは、レジスタが値 (-1) で書き込まれた後に VF のベース アドレス レジスタの値を確認する場合に、仮想化スタック (非特権) によって呼び出されます。 このプロセスは、PCI デバイスを設定する際に従来のものであり、その結果、PCI ドライバーは、デバイスが有効になった後にデコードされるアドレス空間の量を認識できます。 特権のない VM が VF の BAR に書き込むと、特権 VM が機能しなくなる可能性があります。 したがって、このルーチンでは、BAR に書き込む必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | Windows Server 2016 |
対象プラットフォーム | Windows |
ヘッダー | pcivirt.h |
IRQL | PASSIVE_LEVEL |