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