Unterstützung der NDIS-VMQ-Livemigration
Zur Unterstützung der Livemigration kann ein virtueller Computer (VM) an jeder Anweisung oder ausstehenden E/A-Grenze angehalten werden. Das heißt, der virtuelle Computer kann die ausstehenden Empfangsanforderungen möglicherweise nicht abgeschlossen haben. Daher gibt der virtuelle Netzwerkdienstanbieter (VSP) alle empfangenen Pakete an den zugrunde liegenden Netzwerkadapter zurück, die vom virtuellen Computer nicht zurückgegeben wurden.
Hinweis In Hyper-V wird eine untergeordnete Partition auch als VM bezeichnet.
Wenn die VM auf einem anderen Host neu gestartet wird, verarbeitet der Netzwerk-VSP auf dem neuen Host die Empfangspakete, die die fortgesetzte VM zurückgibt, und gibt sie nicht an den neuen zugrunde liegenden Miniporttreiber weiter. Nach Abschluss der Migration wird die Empfangswarteschlange, die dem virtuellen Computer zugeordnet war, freigegeben und kann für einen anderen virtuellen Computer wiederverwendet werden.
Hinweis Der neue Netzwerkadapter unterstützt VMQ möglicherweise nicht.
Wenn NDIS einen Miniporttreiber anfordert, um eine VMQ-Empfangswarteschlange freizusetzen, führen Sie die folgenden Schritte aus:
Der Netzwerkadapter beendet die DMA-Übertragung von Daten, um Puffer zu empfangen, die der Empfangswarteschlange zugeordnet sind. Danach muss die Warteschlange in den DMA-Status Beendet wechseln. Der Netzwerkadapter hat wahrscheinlich die DMA-Aktivität beendet, als er die OID_RECEIVE_FILTER_CLEAR_FILTER OID-Anforderung empfangen hat, um den letzten Filter für die Empfangswarteschlange zu löschen.
Der Miniporttreiber generiert eine NDIS_STATUS_RECEIVE_QUEUE_STATE status Angabe, wobei der QueueState-Member der NDIS_RECEIVE_QUEUE_STATE-Struktur auf NdisReceiveQueueOperationalStateDmaStopped festgelegt ist, um NDIS darüber zu informieren, dass die DMA-Übertragung beendet wurde.
Der Miniporttreiber wartet, bis alle angegebenen Empfangspakete für diese Warteschlange an den Miniporttreiber zurückgegeben werden.
Der Miniporttreiber gibt den gesamten freigegebenen Arbeitsspeicher frei, den er für die Empfangspuffer des Netzwerkadapters zugewiesen hat, die der Warteschlange zugeordnet sind, indem er NdisFreeSharedMemory aufruft.
Der Miniporttreiber schließt die OID_RECEIVE_FILTER_FREE_QUEUE OID-Anforderung ab, um die Empfangswarteschlange zu befreien.
Weitere Informationen zu Warteschlangenzuständen finden Sie unter NDIS-VM-Warteschlangenzustände.