NIC スイッチの削除
シングル ルート I/O 仮想化 (SR-IOV) をサポートするネットワーク アダプターは、NIC スイッチを削除できる必要があります。 SR-IOV アダプターの PCI Express (PCIe) 物理機能 (PF) のミニポート ドライバーのみが、アダプター上の NIC スイッチを削除できます。
注意: Windows Server 2012 の NDIS 6.30 以降では、SR-IOV インターフェイスは、ネットワーク アダプターの1つの NIC スイッチのみをサポートします。 このスイッチは既定の NIC スイッチと呼ばれており、NDIS_DEFAULT_SWITCH_ID識別子で参照します。
PF ミニポート ドライバーを停止する前に、NDIS は OID_NIC_SWITCH_DELETE_SWITCHのオブジェクト識別子 (OID) セット要求を発行して NIC スイッチを削除します。 NDIS_OID_REQUEST構造体の InformationBuffer メンバーには、削除するスイッチの識別子を指定するNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS 構造体へのポインターが含まれています。
NDIS は、PF ミニポート ドライバーにOID_NIC_SWITCH_DELETE_SWITCHの OID セット要求を発行する前に、次のポリシーを適用します。
NDIS は、すべての受信フィルターが NIC スイッチの既定および既定以外の仮想ポート (VPorts) からクリアされたことを保証します。 受信フィルターは、OID_RECEIVE_FILTER_CLEAR_FILTERの OID セット要求によってクリアされます。
NDIS は、スイッチで作成されたすべての既定以外の仮想ポート (VPort) が以前に削除されていることを保証します。 VPort は、OID_NIC_SWITCH_DELETE_VPORT の OID セット要求によって削除されます。
NDIS は、NIC スイッチに接続されている PCIe 仮想機能 (VF) のすべてのリソースが以前に解放されていることを保証します。 VM は、OID_NIC_SWITCH_FR Enterprise Edition_VFの OID セット要求によって解放されます。
OID_NIC_SWITCH_DELETE_SWITCH の OID メソッド要求を受信すると、PF ミニポート ドライバーは次の操作を行う必要があります。
PF ミニポート ドライバーは、NIC スイッチの静的な作成と構成をサポートしている場合、指定した NIC スイッチに関連付けられているソフトウェア リソースを解放する必要があります。 ただし、ドライバーが NIC スイッチのハードウェア リソースを解放するのは、MiniportHaltEx が呼び出されたときのみです。
静的な NIC スイッチの作成の詳細については、「NIC スイッチの静的な作成」を参照してください。
PF ミニポート ドライバーは、NIC スイッチの動的な作成と構成をサポートしている場合、指定された NIC スイッチに関連付けられているハードウェアおよびソフトウェア リソースを解放する必要があります。
動的な NIC スイッチの作成の詳細については、「NIC スイッチの動的な作成」を参照してください。
PF ミニポート ドライバーが NIC スイッチの動的な作成をサポートし、すべての NIC スイッチがネットワーク アダプターで削除されている場合、ドライバーは NdisMEnableVirtualization を呼び出すことによって、アダプターの仮想化を無効にする必要があります。 仮想化を無効にするには、ネットワーク アダプターでは EnableVirtualization パラメーターを FALSE に設定し、NumVFs パラメーターを 0 に設定する必要があります。
NdisMEnableVirtualization は、ネットワーク アダプターの PF の PCIe 構成スペースの SR-IOV 拡張機能構造の NumVFs メンバーと VF Enable ビットをクリアします。
注 PF ミニポート ドライバーは、NIC スイッチの静的な作成と構成をサポートしている場合、MiniportHaltEx が呼び出されたときにのみ、NdisMEnableVirtualization を呼び出す必要があります。