OID_NIC_SWITCH_CREATE_VPORT
上部のドライバーは、OID_NIC_SWITCH_CREATE_VPORT のオブジェクト識別子 (OID) メソッド要求を発行して、ネットワーク アダプターの NIC スイッチに既定以外の仮想ポート (VPort) を作成します。 この OID メソッド要求は、ネットワーク アダプターの PCI Express (PCIe) 物理機能 (PF) または以前に割り当てられた PCIe 仮想機能 (VF) にも作成した VPort をアタッチします。
上部のドライバーは、ネットワーク アダプターの 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 ミニポート ドライバーは、MiniportOidRequest から NDIS_STATUS_SUCCESS を返すことによって OID を正常に完了します。
OID_NIC_SWITCH_CREATE_VPORT 要求が正常に完了した場合、PF ミニポート ドライバーと上部のドライバーは、一連の操作の既定以外の VPort の VPortId 値を保持する必要があります。 VPortId 値は、次のように操作中に使用されます。
NDIS と上部のドライバーは、VPortId 値を使用して、OID_NIC_SWITCH_VPORT_PARAMETERS and OID_NIC_SWITCH_DELETE_VPORT など、この VPort に関連する連続する OID 要求の既定以外の VPort を識別します。
送信操作中、NDIS は、VPortId 値を指定して、パケットの送信元の VPort を識別します。 この値は、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.BytesNeeded メンバー (NDIS_OID_REQUEST 構造体を設定する必要があります。 |
NDIS_STATUS_FAILURE |
その他の理由で要求に失敗しました。 |
要件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |