Anhalten eines PF-Miniporttreibers
In diesem Thema werden die Schritte erläutert, die mit dem Anhalten des Miniporttreibers für eine PCI Express (PCIe) Physical Function (PF) auf einem Adapter verbunden sind, der single root E/O Virtualization (SR-IOV) unterstützt. Diese Schritte sind in der folgenden Abbildung dargestellt.
Dieses Thema enthält folgende Informationen:
Von NDIS ausgeführte Aktionen und Überlastung von Treibern, bevor MiniportHaltEx aufgerufen wird
Aktionen, die vom PF-Miniporttreiber ausgeführt werden, wenn MiniportHaltEx aufgerufen wird
Von NDIS ausgeführte Aktionen und Überlastung von Treibern, bevor MiniportHaltEx aufgerufen wird
Bevor NDIS die MiniportHaltEx-Funktion des PF-Miniporttreibers aufruft, führt es zunächst Folgendes aus:
NDIS hebt die Bindung aller Protokolltreiber auf, die zuvor an den zugrunde liegenden PF-Miniporttreiber gebunden waren. Dazu ruft NDIS die ProtocolUnbindAdapterEx-Funktion des Protokolltreibers auf.
NDIS trennt alle Filtertreiber, die zuvor an den zugrunde liegenden PF-Miniporttreiber gebunden waren. Dazu ruft NDIS die FilterDetach-Funktion des Filtertreibers auf.
Wenn ein überlastendes Protokoll oder Filtertreiber ungebunden oder vom PF-Miniporttreiber getrennt wird, müssen die folgenden Schritte ausgeführt werden:
Der Treiber muss eine OID-Set-Anforderung (Object Identifier) von OID_RECEIVE_FILTER_CLEAR_FILTER ausgeben, um alle zuvor festgelegten Empfangsfilter zu löschen. Der Treiber legt diese Filter für den virtuellen Standardport (VPort) oder alle nicht standardmäßigen VPorts des NIC-Switches auf dem Netzwerkadapter fest. Der Treiber legt diese Filter fest, indem er OID-Methodenanforderungen von OID_RECEIVE_FILTER_SET_FILTER an den PF-Miniporttreiber ausgibt.
Der Treiber muss eine OID-Set-Anforderung von OID_NIC_SWITCH_DELETE_VPORT ausstellen, um alle nicht standardmäßigen VPorts zu löschen, die er zuvor auf dem NIC-Switch erstellt hat. Der Treiber legt diese VPorts fest, indem er OID-Methodenanforderungen von OID_NIC_SWITCH_CREATE_VPORT an den PF-Miniporttreiber ausgibt.
Der Treiber muss eine OID-Set-Anforderung von OID_NIC_SWITCH_FREE_VF ausstellen, um die Ressourcen für alle PCIe Virtual Functions (VFs) freizugeben, die er zuvor auf dem NIC-Switch zugewiesen hat. Der Treiber weist Ressourcen für den VF zu, indem er OID-Methodenanforderungen von OID_NIC_SWITCH_ALLOCATE_VF an den PF-Miniporttreiber ausgibt.
Weitere Informationen finden Sie unter Freigeben von Ressourcen für eine virtuelle Funktion.
Hinweis Wenn Ressourcen für den VF freigegeben werden, ruft NDIS die MiniportHaltEx-Funktion des VF-Miniporttreibers auf. Weitere Informationen finden Sie unter Anhalten eines VF-Miniporttreibers.
Nachdem alle Empfangsfilter, nicht standardmäßige VPorts und VFs aus dem NIC-Switch gelöscht wurden, führt NDIS die folgenden Schritte aus:
NDIS löscht alle NIC-Switches, indem OID-Set-Anforderungen von OID_NIC_SWITCH_DELETE_SWITCH an den PF-Miniporttreiber ausgegeben werden. Weitere Informationen zum Löschen eines NIC-Switches finden Sie unter Löschen eines NIC-Switches.
Hinweis Ab Windows Server 2012 unterstützt die SR-IOV-Schnittstelle nur den Standard-NIC-Switch auf dem Netzwerkadapter.
Nachdem alle NIC-Switches erfolgreich gelöscht wurden, ruft NDIS die MiniportHaltEx-Funktion des PF-Miniporttreibers auf.
Aktionen, die vom PF-Miniporttreiber ausgeführt werden, wenn MiniportHaltEx aufgerufen wird
Wenn NDIS MiniportHaltEx aufruft, muss der PF-Miniporttreiber die folgenden Schritte ausführen:
Wenn der PF-Miniporttreiber die statische Erstellung von NIC-Switches unterstützt und alle NIC-Switches gelöscht wurden, muss der Treiber die Virtualisierung auf dem Adapter deaktivieren, indem er NdisMEnableVirtualization aufruft , wobei der EnableVirtualization-Parameter auf FALSE und der NumVFs-Parameter auf Null festgelegt ist.
NdisMEnableVirtualization löscht den NumVFs-Member und das VF Enable-Bit in der SR-IOV Extended Capability-Struktur im PCIe-Konfigurationsraum der PF des Netzwerkadapters.
Hinweis Wenn der PF-Miniporttreiber die dynamische Erstellung und Konfiguration von NIC-Switches unterstützt, muss er NdisMEnableVirtualization aufrufen, wenn der Treiber die OID-Setanforderung von OID_NIC_SWITCH_DELETE_SWITCH verarbeitet. Diese OID-Anforderung wird ausgestellt, bevor MiniportHaltEx aufgerufen wird.
Der PF-Miniporttreiber führt die anderen Aufgaben aus, die einem Miniportstoppvorgang zugeordnet sind. Weitere Informationen finden Sie unter Anhalten eines Miniportadapters.