OID_NIC_SWITCH_CREATE_SWITCH

NDIS は、OID_NIC_SWITCH_CREATE_SWITCH のオブジェクト識別子 (OID) メソッド要求を発行して、ネットワーク アダプターに NIC スイッチを作成します。 この 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 ミニポート ドライバーでは、次の操作を行う必要があります。

  1. PF ミニポート ドライバーは、静的なスイッチの作成と構成をサポートしている場合、NDIS が MiniportInitializeEx を呼び出すと、NIC スイッチを作成します。 ドライバーは、この OID 要求を処理するとき、NDIS_NIC_SWITCH_PARAMETERS 構造体の構成パラメーターを検証する必要があります。 パラメーターは、MiniportInitializeEx の呼び出し中にスイッチを作成するためにドライバーによって使用されるパラメーターと同じである必要があります。 同じでない場合、ドライバーは OID 要求に対して必ず失敗します。

    詳細については、「NIC スイッチの静的な作成」を参照してください。

  2. PF ミニポート ドライバーが動的なスイッチの作成と構成をサポートしている場合、ドライバーは、NDIS_NIC_SWITCH_PARAMETERS 構造体の構成値を検証し、これらの値に基づいて NIC スイッチを作成する必要があります。

    詳細については、「NIC スイッチの動的な作成」を参照してください。

  3. PF ミニポート ドライバーは、NIC スイッチの既定の VPort に必要なハードウェアおよびソフトウェアのリソースを割り当てる必要があります。

    既定の VPort は常に、OID_NIC_SWITCH_CREATE_SWITCH の OID 要求を通じて作成され、OID_NIC_SWITCH_DELETE_SWITCH の OID 要求を通じて削除されます。 OID_NIC_SWITCH_CREATE_VPORTOID_NIC_SWITCH_DELETE_VPORT の OID 要求は、NIC スイッチの既定以外の VPort の作成と削除に使用されます。

  4. 動的なスイッチの作成と構成をサポートする PF ミニポート ドライバーは、NdisMEnableVirtualization を呼び出すことによって、スイッチの SR-IOV 仮想化を有効にする必要があります。 この呼び出しによって、アダプターの PCI Express (PCIe) 構成領域の SR-IOV 拡張機能構造で NumVFs メンバーと VF Enable ビットが構成されます。

    SR-IOV 構成領域の詳細については、PCI-SIG Single Root I/O Virtualization および Sharing 1.1 の仕様を参照してください。

    PF ミニポート ドライバーは、静的なスイッチの作成をサポートしている場合、MiniportInitializeEx が呼び出されるとスイッチを作成し、その後、SR-IOV 仮想化を有効にします。

PF ミニポート ドライバーが OID_NIC_SWITCH_CREATE_SWITCH の OID メソッド要求を正常に完了した場合、次の処理が可能になります。

  • OID_NIC_SWITCH_ALLOCATE_VF の OID メソッド要求によって、NIC スイッチに VF を割り当てることができます。

  • 既定以外の 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.BytesNeeded メンバー (NDIS_OID_REQUEST 構造体を設定する必要があります。

NDIS_STATUS_FAILURE

その他の理由で要求に失敗しました。

要件

バージョン

NDIS 6.30 以降でサポートされています。

ヘッダー

Ntddndis.h (Ndis.h を含む)

関連項目


MiniportInitializeEx

NDIS_OID_REQUEST

NDIS_NIC_SWITCH_PARAMETERS

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_NIC_SWITCH_CREATE_VPORT