基になるドライバーは、ネットワーク アダプターの NIC スイッチに既定以外の仮想ポート (VPort) を作成するOID_NIC_SWITCH_CREATE_VPORTのオブジェクト識別子 (OID) メソッド要求を発行します。 この OID メソッド要求は、作成された VPort をネットワーク アダプターの PCI Express (PCIe) 物理関数 (PF) または以前に割り当てられた PCIe 仮想関数 (VF) にもアタッチします。
基になるドライバーは、ネットワーク アダプターの PF のミニポート ドライバーにこの OID メソッド要求を発行します。 この OID メソッド要求は、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする PF ミニポート ドライバーに必要です。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、NDIS_NIC_SWITCH_VPORT_PARAMETERS 構造体へのポインターが含まれています。
備考
基になるドライバーは、作成する既定以外の VPort に関する構成情報を使用して、NDIS_NIC_SWITCH_VPORT_PARAMETERS 構造体を初期化します。 構成情報には、既定以外の VPort がアタッチされている PCIe 関数と、既定以外の VPort のキュー ペアの数が含まれます。
PF ミニポート ドライバーが OID 要求を発行すると、ドライバーは、指定された既定以外の VPort に関連付けられているハードウェアおよびソフトウェア リソースを割り当てます。 すべてのリソースが正常に割り当てられた後、PF ミニポート ドライバーは、ミニポートOidRequestからNDIS_STATUS_SUCCESSを返すことによって OID を正常に完了します。
OID_NIC_SWITCH_CREATE_VPORT要求が正常に完了した場合、PF ミニポート ドライバーと、上にあるドライバーは、連続する操作の既定以外の VPort の VPortId 値を保持する必要があります。 VPortId 値は、次の操作の間に使用されます。
NDIS および上にあるドライバーは、VPortId 値を使用して、OID_NIC_SWITCH_VPORT_PARAMETERS や OID_NIC_SWITCH_DELETE_VPORTなど、この VPort に関連する連続する OID 要求で既定以外の VPort を識別します。
送信操作中に、NDIS は、パケットの送信元の VPort を識別するために、VPortId 値を指定します。 この値は、NET_BUFFER_LIST 構造体の帯域外 (OOB) NDIS_NET_BUFFER_LIST_FILTERING_INFO データ内で指定されます。
受信操作中に、PF ミニポート ドライバーは、パケットを転送する VPortId 値を指定します。 この値は、NET_BUFFER_LIST 構造体の OOB NDIS_NET_BUFFER_LIST_FILTERING_INFO データでも指定されます。
詳細については、「仮想ポートの作成」を参照してください。
注 既定の VPort は常に存在し、OID_NIC_SWITCH_CREATE_VPORTの OID 要求では作成されません。 既定の VPort には、NDIS_DEFAULT_VPORT_IDの識別子があります。 PF ミニポート ドライバーが NIC スイッチを作成すると、ドライバーは自動的に既定の VPort をネットワーク アダプターの PF に接続します。
戻り値の状態コード
NDIS または 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_VPORT_PARAMETERS 構造体の 1 つ以上のメンバーに無効な値があります。 |
NDIS_STATUS_INVALID_LENGTH |
情報バッファーの長さが sizeof(NDIS_NIC_SWITCH_VPORT_PARAMETERS) 未満です。 PF ミニポート ドライバーは、DATA を設定する必要があります。METHOD_INFORMATION。BytesNeededNDIS_OID_REQUEST 構造体のメンバーを、必要な最小バッファー サイズに設定します。 |
NDIS_STATUS_FAILURE |
その他の理由で要求が失敗しました。 |
必要条件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダ |
Ntddndis.h (Ndis.h を含む) |