NdisMQueryProbedBars 関数 (ndis.h)
ミニポート ドライバーは、ネットワーク アダプターの PCI Express (PCIe) ベース アドレス レジスタ (BAR) の値を取得する の NdisMQueryProbedBars 関数を呼び出します。 この関数は、PCI バス ドライバーによって実行されたクエリの後にネットワーク アダプターによって報告された BAR 値を返します。 このクエリは、ネットワーク アダプターに必要なメモリまたは I/O アドレス空間を決定します。
構文
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
パラメーター
[in] NdisMiniportHandle
ネットワーク アダプターは、NDIS がミニポートInitializeEx の ミニポートAdapterHandle パラメーターに渡ハンドルします。
[out] BaseRegisterValues
ULONG 値の配列へのポインター。 この配列には、PCIe ネットワーク アダプターの各 BAR の ULONG 値が含まれています。
戻り値
NdisMQueryProbedBars は、次のいずれかの状態値を返すことができます。
リターン コード | 形容 |
---|---|
|
クエリ操作が正常に完了しました。 |
|
クエリ操作に失敗しました。 |
備考
Hyper-V 親パーティションの管理オペレーティング システムで実行される PCI バス ドライバーは、ネットワーク アダプターの各 PCI ベース アドレス レジスタ (BAR) のメモリまたは I/O アドレス空間の要件を照会します。 PCI バス ドライバーは、バス上のアダプターを最初に検出するときに、このクエリを実行します。
この PCI BAR クエリを使用して、PCI バス ドライバーは次を決定します。
- PCI BAR がネットワーク アダプターでサポートされているかどうか。
- BAR がサポートされている場合、BAR に必要なメモリまたは I/O アドレス空間の量。
PCI 構成領域へのアクセスは特権操作であるため、Hyper-V 親パーティションの管理オペレーティング システムで実行されるコンポーネントによってのみ実行できます。 VPCI バス ドライバーが PCI BAR に対してクエリを実行すると、NDIS は PF ミニポート ドライバーに OID_SRIOV_PROBED_BARS のオブジェクト識別子 (OID) クエリ要求を発行します。 この OID クエリ要求によって返される結果は VPCI バス ドライバーに転送されるため、VF ネットワーク アダプターで必要なメモリ アドレス空間の量を判断できます。
この OID 要求の処理中に、ドライバーは、PCI ドライバーによって実行 BAR クエリから返された値を取得する NdisMQueryProbedBars を呼び出すことができます。
VF の PCI BAR レジスタに対してクエリを実行する方法の詳細については、「仮想関数 の PCI ベース アドレス レジスタのクエリを実行するを参照してください。
SR-IOV インターフェイスの詳細については、「シングル ルート I/O 仮想化の概要 (SR-IOV)を参照してください。
仮想バス ドライバーとのインターフェイスの
独立系ハードウェア ベンダー (IHV) が、SR-IOV ドライバー パッケージのの一部として仮想バス ドライバー (VBD) を提供する場合、ミニポート ドライバーは NdisMQueryProbedBars 呼び出してはなりません。 代わりに、ドライバーはプライベート通信チャネルを介して VBD とインターフェイスし、VBD 呼び出し GetVirtualFunctionProbedBars要求する必要があります。 この関数は、基になる 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 以降でサポートされています。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ndis.h (Ndis.h を含む) |
ライブラリ | Ndis.lib |
IRQL | PASSIVE_LEVEL |
関連項目
GUID_PCI_VIRTUALIZATION_INTERFACE
GetVirtualFunctionProbedBars の