PF ミニポート ドライバーの停止
このトピックでは、シングル ルート I/O 仮想化 (SR-IOV) をサポートするアダプターの PCI Express (PCIe) 物理関数 (PF) の、ミニポート ドライバーの停止に関連する手順について説明します。 これらのステップを次の図に示します。
このトピックの内容は次のとおりです。
MiniportHaltEx が呼び出される前に NDIS および基になるドライバーによって実行されるアクション
NDIS は、PF ミニポート ドライバーの MiniportHaltEx 関数を呼び出す前に、最初に次の操作を行います:
NDIS は、基になる PF ミニポート ドライバーに以前にバインドされているすべてのプロトコル ドライバーをバインド解除します。 NDIS は、プロトコル ドライバー の ProtocolUnbindAdapterEx 関数を呼び出してこれを行います。
NDIS は、基になる PF ミニポート ドライバーに以前にバインドされているすべてのフィルター ドライバーをデタッチします。 NDIS は、フィルター ドライバーの FilterDetach 関数を呼び出してこれを行います。
基になるプロトコルまたはフィルター ドライバーがバインド解除または PF ミニポート ドライバーからデタッチされている場合は、次の手順に従う必要があります:
ドライバーは、以前に設定した受信フィルターをクリアするには、OID_RECEIVE_FILTER_CLEAR_FILTER のオブジェクト識別子 (OID) セット要求を発行する必要があります。 ドライバーは、既定の仮想ポート (VPort) またはネットワーク アダプター上の NIC スイッチの既定以外の VPort にこれらのフィルターを設定します。 ドライバーは、PF ミニポート ドライバーに OID_RECEIVE_FILTER_SET_FILTER の OID メソッド要求を発行して、これらのフィルターを設定します。
ドライバーは、NIC スイッチで以前に作成した既定以外の VPort を削除するには、OID_NIC_SWITCH_DELETE_VPORT の OID セット要求を発行する必要があります。 ドライバーは、PF ミニポート ドライバーに OID_NIC_SWITCH_CREATE_VPORT の OID メソッド要求を発行して、これらの VPort を設定します。
ドライバーは、以前に NIC スイッチに割り当てた PCIe 仮想関数 (VFs) のリソースを解放するには、OID_NIC_SWITCH_FREE_VF の OID セット要求を発行する必要があります。 ドライバーは、PF ミニポート ドライバーに OID_NIC_SWITCH_ALLOCATE_VF の OID メソッド要求を発行して、VF のリソースを割り当てます。
詳細については、「仮想関数のリソースの解放」を参照してください。
メモ VF のリソースが解放されると、NDIS は VF ミニポート ドライバーの MiniportHaltEx 関数を呼び出します。 詳細については、「VF ミニポート ドライバーの停止」を参照してください。
すべての受信フィルター、既定以外の VPort、VFs が NIC スイッチから削除された後、NDIS は次の手順に従います:
NDIS は、PF ミニポート ドライバーに OID_NIC_SWITCH_DELETE_SWITCH の OID セット要求を発行して、すべての NIC スイッチを削除します。 NIC スイッチの削除方法の詳細については、「NIC スイッチの削除」を参照してください。
注 Windows Server 2012 以降では、SR-IOV インターフェイスは、ネットワーク アダプターの既定の NIC スイッチのみをサポートします。
すべての NIC スイッチが正常に削除されると、NDIS は PF ミニポート ドライバーの MiniportHaltEx 関数を呼び出します。
MiniportHaltEx が呼び出されたときに PF ミニポート ドライバーによって実行されるアクション
NDIS が MiniportHaltEx を呼び出すとき、PF ミニポート ドライバーは、次の手順に従う必要があります:
PF ミニポート ドライバーが NIC スイッチの静的な作成をサポートし、すべての NIC スイッチが削除されている場合、ドライバーは、EnableVirtualization パラメーターを FALSE に設定し、NumVFs パラメーターをゼロに設定して、NdisMEnableVirtualization を呼び出すことにより、アダプターの仮想化を無効にする必要があります。
NdisMEnableVirtualization は、ネットワーク アダプターの PF の PCIe 構成スペースの SR-IOV 拡張機能構造の NumVFs メンバーと VF Enable ビットをクリアします。
メモ PF ミニポート ドライバーが NIC スイッチの動的な作成と構成をサポートしている場合は、ドライバーが OID_NIC_SWITCH_DELETE_SWITCH の OID セット要求を処理するときに NdisMEnableVirtualization を呼び出す必要があります。 この OID 要求は MiniportHaltEx が呼び出される前に発行されます。
PF ミニポート ドライバーは、ミニポート停止操作に関連付けられている他のタスクを実行します。 詳細については、「ミニポート アダプターの停止」を参照してください。