NdisMWriteConfigBlock 関数 (ndis.h)

PCI Express (PCIe) 仮想関数 (VF) のミニポート ドライバーは 、NdisMWriteConfigBlock 関数を呼び出して VF 構成ブロックにデータを書き込みます。 VF 構成ブロックに対する書き込み操作は、ネットワーク アダプターの PCIe 物理機能 (PF) のミニポート ドライバーによって処理されます。

NdisMWriteConfigBlock は、ネットワーク アダプターの VF のミニポート ドライバーによってのみ呼び出す必要があります。
 

構文

NDIS_STATUS NdisMWriteConfigBlock(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] ULONG       BlockId,
  [in] PVOID       Buffer,
  [in] ULONG       Length
);

パラメーター

[in] NdisMiniportHandle

NDIS が MiniportInitializeExの MiniportAdapterHandle パラメーターに渡したネットワーク アダプター ハンドル。

[in] BlockId

書き込む構成ブロックの識別子を指定する ULONG 値。 この識別子は、独立したハードウェア ベンダー (IHV) に固有であり、ネットワーク アダプター上の PF と VF のミニポート ドライバーによってのみ使用されます。

[in] Buffer

書き込まれる構成データを含む呼び出し元によって割り当てられたバッファーへのポインター。

[in] Length

構成ブロックに書き込むバイト数。

戻り値

NdisMWriteConfigBlock は、次のいずれかの状態値を返すことができます。

リターン コード 説明
NDIS_STATUS_SUCCESS
書き込み操作が正常に完了しました。
NDIS_STATUS_FAILURE
書き込み操作に失敗しました。

注釈

VF ミニポート ドライバーは NdisMWriteConfigBlock を呼び出して、PF ミニポート ドライバーによる VF 構成データのバックチャネル書き込み要求を開始します。 この要求が通知されると、PF ドライバーは、指定された VF 構成ブロックにデータを書き込みます。

VF 構成ブロックは、PF ミニポート ドライバーと VF ミニポート ドライバー間のバックチャネル通信に使用されます。 IHV では、デバイスの 1 つ以上の VF 構成ブロックを定義できます。 各 VF 構成ブロックには、IHV で定義された形式、長さ、およびブロック ID があります。

メモ 各 VF 構成ブロックからのデータは、PF および VF ミニポート ドライバーによってのみ使用されます。
 
シングル ルート I/O 仮想化 (SR-IOV) インターフェイス内のバックチャネル通信の詳細については、「 SR-IOV PF/VF バックチャネル通信」を参照してください。

Virtual Bus ドライバーへのインターフェイス

独立系ハードウェア ベンダー (IHV) が SR-IOV ドライバー パッケージの一部として仮想バス ドライバー (VBD) を提供する場合、ミニポート ドライバーは NdisMWriteConfigBlock を呼び出す必要があります。 代わりに、ドライバーはプライベート通信チャネルを介して VBD とインターフェイスし、VBD が WriteVfConfigBlock を呼び出すように要求する必要があります。 この関数は、基になる仮想 PCI (VPCI) バス ドライバーでサポートされている GUID_VPCI_INTERFACE_STANDARD インターフェイスから公開されます。

Hyper-V 子パーティションのゲスト オペレーティング システムで実行される VBD は、VPCI バス上の物理デバイス オブジェクト (PDO) にIRP_MN_QUERY_INTERFACE要求を発行することで、GUID_VPCI_INTERFACE_STANDARD インターフェイスに対してクエリを実行できます。 この要求は、IRQL = PASSIVE_LEVELから行う必要があります。 この要求では、ドライバーは InterfaceType パラメーターを GUID_VPCI_INTERFACE_STANDARD に設定する必要があります。

要件

要件
サポートされている最小のクライアント サポートされていません。NDIS 6.30 以降でサポートされています。
サポートされている最小のサーバー Windows Server 2012
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= APC_LEVEL

こちらもご覧ください

GUID_VPCI_INTERFACE_STANDARD

WriteVfConfigBlock