次の方法で共有


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

こちらもご覧ください

IOCTL_VPCI_WRITE_BLOCK

VPCI_INTERFACE_STANDARD