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 ミニポート ドライバーでは、次の操作を行う必要があります。
PF ミニポート ドライバーは、静的なスイッチの作成と構成をサポートしている場合、NDIS が MiniportInitializeEx を呼び出すと、NIC スイッチを作成します。 ドライバーは、この OID 要求を処理するとき、NDIS_NIC_SWITCH_PARAMETERS 構造体の構成パラメーターを検証する必要があります。 パラメーターは、MiniportInitializeEx の呼び出し中にスイッチを作成するためにドライバーによって使用されるパラメーターと同じである必要があります。 同じでない場合、ドライバーは 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 要求を通じて削除されます。 OID_NIC_SWITCH_CREATE_VPORT と OID_NIC_SWITCH_DELETE_VPORT の OID 要求は、NIC スイッチの既定以外の VPort の作成と削除に使用されます。
動的なスイッチの作成と構成をサポートする 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 を含む) |