NdisMGetVirtualFunctionBusData 関数 (ndis.h)
ミニポート ドライバーは NdisMGetVirtualFunctionBusData 関数を呼び出して、ネットワーク アダプター上の指定された仮想関数 (VF) の PCI Express (PCIe) 構成空間からデータを読み取ります。
構文
ULONG NdisMGetVirtualFunctionBusData(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[out] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
パラメーター
[in] NdisMiniportHandle
NDIS が MiniportInitializeExの MiniportAdapterHandle パラメーターに渡したネットワーク アダプター ハンドル。
[in] VFId
PCI 構成スペースからのデータが返される VF の識別子。
[out] Buffer
VF の PCI 構成領域から読み取られたデータを受信するバッファーへのポインター。
[in] Offset
データの読み取り元となる VF の PCI 構成空間内のオフセット (バイト単位)。
[in] Length
読み取るデータの長さ (バイト単位)。
戻り値
NdisMGetVirtualFunctionBusData は、PCI 構成空間から読み取られたバイト数を返します。 読み取り操作が失敗した場合、 NdisMGetVirtualFunctionBusData は 0 を返します。
注釈
通常、PF ミニポート ドライバーは、OID_SRIOV_READ_VF_CONFIG_SPACEの OID メソッド要求を処理するときに NdisMGetVirtualFunctionBusDataを呼び出します。
ただし、ドライバーは、 NdisMEnableVirtualization の呼び出しを介してネットワーク アダプターで仮想化が有効になった後、いつでもこの関数を呼び出すことができます。
VF の PCI 構成領域に対してクエリを実行する方法の詳細については、「 仮想関数の PCI 構成領域のクエリ」を参照してください。
SR-IOV インターフェイスの詳細については、「 単一ルート I/O 仮想化の概要 (SR-IOV)」を参照してください。
Virtual Bus ドライバーへのインターフェイス
独立系ハードウェア ベンダー (IHV) が SR-IOV ドライバー パッケージの一部として仮想バス ドライバー (VBD) を提供する場合、ミニポート ドライバーは NdisMGetVirtualFunctionBusData を呼び出してはなりません。 代わりに、ドライバーはプライベート通信チャネルを介して VBD とインターフェイスし、VBD が GetVirtualFunctionData を呼び出すように要求する必要があります。 この関数は、基になる PCI バス ドライバーでサポートされている GUID_PCI_VIRTUALIZATION_INTERFACE インターフェイスから公開されます。Hyper-V 親パーティションの管理オペレーティング システムで実行される VBD は、PCI バス上の物理デバイス オブジェクト (PDO) にIRP_MN_QUERY_INTERFACE要求を発行することで、GUID_PCI_VIRTUALIZATION_INTERFACEインターフェイスに対してクエリを実行できます。 この要求は、IRQL = PASSIVE_LEVELから行う必要があります。 この要求では、ドライバーは InterfaceType パラメーターを GUID_PCI_VIRTUALIZATION_INTERFACE に設定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | ユニバーサル |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
こちらもご覧ください