NdisMReadConfigBlock 関数 (ndis.h)
PCI Express (PCIe) 仮想関数 (VF) のミニポート ドライバーは 、NDISMReadConfigBlock 関数を呼び出して VF 構成ブロックからデータを読み取ります。 VF 構成ブロックの読み取り操作は、ネットワーク アダプターの PCIe 物理機能 (PF) のミニポート ドライバーによって処理されます。
構文
NDIS_STATUS NdisMReadConfigBlock(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] ULONG BlockId,
[out] PVOID Buffer,
[in] ULONG Length
);
パラメーター
[in] NdisMiniportHandle
NDIS が MiniportInitializeExの MiniportAdapterHandle パラメーターに渡したネットワーク アダプター ハンドル。
[in] BlockId
読み取る VF 構成ブロックの識別子を指定する ULONG 値。 この識別子は、独立したハードウェア ベンダー (IHV) に固有であり、PF および VF ミニポート ドライバーによってのみ使用されます。
[out] Buffer
要求された構成データを格納する呼び出し元によって割り当てられたバッファーへのポインター。
[in] Length
VF 構成ブロックから読み取るバイト数。
戻り値
NdisMReadConfigBlock は、次のいずれかの状態値を返すことができます。
リターン コード | 説明 |
---|---|
|
クエリ操作が正常に完了しました。 |
|
クエリ操作が失敗しました。 |
注釈
VF ミニポート ドライバーは 、NDISMReadConfigBlock を呼び出して、PF ミニポート ドライバーによる VF 構成データのバックチャネル読み取り要求を開始します。 この要求が通知されると、PF ドライバーは、指定された VF 構成ブロックからデータを返します。
VF 構成ブロックは、PF ミニポート ドライバーと VF ミニポート ドライバー間のバックチャネル通信に使用されます。 IHV では、デバイスの 1 つ以上の VF 構成ブロックを定義できます。 各 VF 構成ブロックには、IHV で定義された形式、長さ、およびブロック ID があります。
SR-IOV インターフェイスの詳細については、「 単一ルート I/O 仮想化の概要 (SR-IOV)」を参照してください。
Virtual Bus ドライバーへのインターフェイス
独立系ハードウェア ベンダー (IHV) が SR-IOV ドライバー パッケージの一部として仮想バス ドライバー (VBD) を提供する場合、ミニポート ドライバーは NdisMReadConfigBlock を呼び出す必要があります。 代わりに、ドライバーはプライベート通信チャネルを介して VBD とインターフェイスし、VBD が ReadVfConfigBlock を呼び出すように要求する必要があります。 この関数は、基になる仮想 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 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= APC_LEVEL |
こちらもご覧ください