NDIS は、ネットワーク アダプターに NIC スイッチを作成するOID_NIC_SWITCH_CREATE_SWITCHのオブジェクト識別子 (OID) メソッド要求を発行します。 この OID 要求を処理するとき、ミニポート ドライバーは、アダプターの NIC スイッチのリソースを割り当てます。
NDIS は、ネットワーク アダプターの PCI Express (PCIe) 物理機能 (PF) のミニポート ドライバーにこの OID メソッド要求を発行します。 この OID メソッド要求は、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする PF ミニポート ドライバーに必要です。
プロトコル ドライバーやフィルター ドライバーなど、 上にあるドライバーは、PF ミニポート ドライバーにOID_NIC_SWITCH_CREATE_SWITCHの OID メソッド要求を発行できないことに注意してください。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_NIC_SWITCH_PARAMETERS 構造体へのポインターが含まれています。
備考
OID_NIC_SWITCH_CREATE_SWITCHの OID メソッド要求を受信すると、PF ミニポート ドライバーは、次の操作を行う必要があります。
PF ミニポート ドライバーは、静的スイッチの作成と構成をサポートしている場合は、NDIS がミニポートInitializeEx呼び出すときに NIC スイッチを作成します。 ドライバーは、この OID 要求を処理するときに、NDIS_NIC_SWITCH_PARAMETERS 構造体の構成パラメーターを確認する必要があります。 パラメーターは、ミニポートInitializeEx への呼び出し中にスイッチを作成するドライバー使用されるものと同じである必要があります。 これが true でない場合、ドライバーは OID 要求を失敗する必要があります。
詳細については、「NIC スイッチの静的な作成」を参照してください。
PF ミニポート ドライバーが動的スイッチの作成と構成をサポートしている場合、ドライバーは、NDIS_NIC_SWITCH_PARAMETERS 構造体の構成値を検証し、これらの値に基づいて NIC スイッチを作成する必要があります。
詳細については、「NIC スイッチの動的作成」を参照してください。
PF ミニポート ドライバーは、NIC スイッチの既定の VPort に必要なハードウェアおよびソフトウェア リソースを割り当てる必要があります。
メモ 既定の VPort は、常にOID_NIC_SWITCH_CREATE_SWITCHの OID 要求を通じて作成され、OID_NIC_SWITCH_DELETE_SWITCHの OID 要求を通じて削除されます。 NIC スイッチの既定以外の VPort の作成と削除には、OID_NIC_SWITCH_CREATE_VPORT と OID_NIC_SWITCH_DELETE_VPORT の OID 要求が使用されます。
動的スイッチの作成と構成をサポートする PF ミニポート ドライバーは、NdisMEnableVirtualization呼び出すことによって、スイッチの SR-IOV 仮想化を有効にする必要があります。 この呼び出しでは、NumVFs メンバーと、アダプターの PCI Express (PCIe) 構成空間の SR-IOV 拡張機能構造の VF Enable ビットを構成します。
SR-IOV 構成領域の詳細については、PCI-SIG シングル ルート I/O 仮想化と共有 1.1 の仕様を参照してください。
注 PF ミニポート ドライバーが静的スイッチの作成をサポートしている場合は、ミニポートInitializeExが呼び出されたときにスイッチを作成した後 SR-IOV 仮想化有効にします。
PF ミニポート ドライバーがOID_NIC_SWITCH_CREATE_SWITCHの OID メソッド要求を正常に完了した場合は、次の処理が可能になります。
OID_NIC_SWITCH_ALLOCATE_VFの OID メソッド要求を使用して、NIC スイッチに VFs を割り当てることができます。
既定以外の VPort は、OID_NIC_SWITCH_CREATE_VPORTの OID メソッド要求を介して NIC スイッチに作成できます。
この OID 要求を処理する方法の詳細については、「OID_NIC_SWITCH_CREATE_SWITCH要求 の処理を参照してください。
戻り値の状態コード
PF ミニポート ドライバーは、OID_NIC_SWITCH_CREATE_SWITCHの OID メソッド要求の次のいずれかの状態コードを返します。
状態コード | 形容 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求が正常に完了しました。 |
NDIS_STATUS_NOT_SUPPORTED |
PF ミニポート ドライバーは、SR-IOV インターフェイスをサポートしていないか、インターフェイスの使用が有効になっていません。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_NIC_SWITCH_PARAMETERS 構造体の 1 つ以上のメンバーに無効な値があります。 |
NDIS_STATUS_INVALID_LENGTH |
情報バッファーの長さが sizeof(NDIS_NIC_SWITCH_PARAMETERS) 未満です。 PF ミニポート ドライバーは、DATA を設定する必要があります。METHOD_INFORMATION。BytesNeededNDIS_OID_REQUEST 構造体のメンバーを、必要な最小バッファー サイズに設定します。 |
NDIS_STATUS_FAILURE |
その他の理由で要求が失敗しました。 |
必要条件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダ |
Ntddndis.h (Ndis.h を含む) |
関連項目
NdisMEnableVirtualizationの