VPCI_READ_BLOCKコールバック関数 (vpci.h)
ReadVfConfigBlock ルーチンは、PCI Express (PCIe) 仮想関数 (VF) の構成データのブロックを読み取ります。 このルーチンは、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートするデバイス上の PCIe VF のドライバーによって呼び出されます。
構文
VPCI_READ_BLOCK VpciReadBlock;
NTSTATUS VpciReadBlock(
PVOID Context,
ULONG BlockId,
PVOID Buffer,
ULONG Length
)
{...}
パラメーター
Context
[入力]インターフェイス固有のコンテキスト情報へのポインター。 呼び出し元は、インターフェイスのVPCI_INTERFACE_STANDARD構造体の Context メンバーとして渡される値を渡します。
BlockId
[入力]読み取る VF 構成ブロックの識別子。 この識別子は、独立したハードウェア ベンダー (IHV) に固有であり、デバイス上の PCIe 物理機能 (PF) と VF のドライバーによってのみ使用されます。
Buffer
[out]読み取る構成データを格納する呼び出し元によって割り当てられたバッファーへのポインター。 詳細については、「解説」を参照してください。
Length
[入力]VF 構成ブロックから読み取るバイト数。
注意
このパラメーターの値は 、VPCI_MAX_READ_WRITE_BLOCK_SIZEを超えてはなりません。
戻り値
ReadVfConfigBlock ルーチンは、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、ルーチンは適切な NTSTATUS 値を返します。
注釈
ReadVfConfigBlock ルーチンが呼び出されると、PF のドライバーは、指定された VF 構成ブロックからデータを返すように通知されます。
VF 構成ブロックは、PF のドライバーと SR-IOV インターフェイスをサポートするデバイス上の VF の間のバックチャネル通信に使用されます。 IHV では、デバイスの 1 つ以上の VF 構成ブロックを定義できます。 各 VF 構成ブロックには、IHV で定義された形式、長さ、およびブロック ID があります。
VF 構成データは、保護された方法で次のドライバー間で交換できます。
- ゲスト オペレーティング システムで実行される VF ドライバー。 このオペレーティング システムは、Hyper-V 子パーティション内で実行されます。
- 管理オペレーティング システムで実行される PF ドライバー。 このオペレーティング システムは、Hyper-V 親パーティション内で実行されます。
各 VF 構成ブロックからのデータは、PF および VF のドライバーによってのみ使用されます。
注意
IOCTL_VPCI_READ_BLOCK IOCTL は、ReadVfConfigBlock ルーチンに代わる非同期の代替手段を提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のサーバー | Windows Server 2012 |
Header | vpci.h |
IRQL | <= APC_LEVEL |