GET_VIRTUAL_DEVICE_RESOURCES コールバック関数 (wdm.h)
GetResources ルーチンは、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートするデバイスで仮想化を有効にするために PCI Express (PCIe) 物理機能 (PF) が必要とするリソースを返します。
構文
GET_VIRTUAL_DEVICE_RESOURCES GetVirtualDeviceResources;
void GetVirtualDeviceResources(
[in, out] PVOID Context,
[out] PUINT8 CapturedBusNumbers
)
{...}
パラメーター
[in, out] Context
インターフェイス固有のコンテキスト情報へのポインター。 呼び出し元は、インターフェイスの PCI_VIRTUALIZATION_INTERFACE 構造体の コンテキスト メンバーとして渡される値を渡します。
[out] CapturedBusNumbers
このルーチンが UINT8 値を返す呼び出し元が指定した変数へのポインター。 この値は、デバイスの SR-IOV PF で使用するためにキャプチャされた PCIe バスの数を指定します。
戻り値
何一つ
備考
通常、PCIe デバイスは単一の PCI バス上のリソースを消費します。 PCI ドライバーは、アップストリーム ブリッジ ポートのセカンダリ バス番号レジスタと下位バス番号レジスタにバス番号を書き込むことで、PCI バスにデバイスを割り当てます。 このポートは、PCIe ルート ポートまたは PCIe スイッチ ポート内の PCI 間ブリッジです。
SR-IOV インターフェイスをサポートするデバイスは、デバイスが接続されている PCI バスに対応できるよりも多くの仮想機能を作成できます。 このような状況では、1 つ以上の未使用の PCI バスをキャプチャするようにアップストリーム ブリッジ ポートを構成する必要があります。 これを行うには、ポートの下位バス番号レジスタに大きな値を書き込みます。
SR-IOV インターフェイスをサポートするデバイスは、次の少なくとも 1 つが当てはまる場合は、PCI バスをキャプチャする必要があります。
デバイスには合計 8 つ以上の機能 (UDF と VFs) があり、デバイスは PCI Express 3.0 仕様の代替ルーティング解釈 (ARI) オプションをサポートしていません。
デバイスは ARI をサポートし、合計 8 つ以上の機能を備えていますが、アップストリーム ブリッジ ポートは ARI をサポートしていません。
デバイスは ARI をサポートし、256 を超える機能を備え、アップストリーム ブリッジ ポートは ARI をサポートします。
ARI のサポートに関係なく、キャプチャされた各バスは 256 の機能をサポートできます。
デバイスで、すべての VFs を有効にするためにさらに多くの PCIe リクエスタ ID (RID) が必要な場合、PCI バス ドライバーは次の処理を行います。
デバイスのバス番号を PCIe セカンダリ バス番号レジスタに書き込みます。
デバイスのバス番号より大きい値を PCIe 下位バス番号レジスタに書き込みます。
これら 2 つのレジスタ値の違いは、キャプチャされたバス番号の数を表します。
GetResources ルーチンは、GUID_PCI_VIRTUALIZATION_INTERFACE インターフェイスによって提供されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Server 2012 以降のバージョンの Windows でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | wdm.h (Wdm.h を含む) |
IRQL | PASSIVE_LEVEL |