Udostępnij przez


operacje zapisywania przełącznika rozszerzalnego Hyper-V

Gdy partycja podrzędna Hyper-V zostanie zatrzymana, zapisana lub zmigrowana na żywo, zostanie zapisany stan działania partycji. Podczas operacji zapisywania rozszerzenie przełącznika rozszerzalnego Hyper-V może zapisywać dane czasu wykonywania dotyczące karty sieciowej przełącznika rozszerzalnego.

Gdy operacja zapisywania jest wykonywana na partycji podrzędnej Hyper-V, rozszerzalny interfejs przełącznika powiadamia rozszerzenie o operacji. Rozszerzenie jest powiadamiane za pośrednictwem następujących żądań identyfikatora obiektu (OID):

OID_SWITCH_NIC_SAVE
Rozszerzalny interfejs przełącznika sygnalizuje krawędź protokołu rozszerzalnego przełącznika, aby wydać ten identyfikator OID podczas operacji zapisywania dla rozszerzonej karty sieciowej przełącznika. Kiedy rozszerzenie obsługuje to żądanie OID, zwraca dane czasu wykonywania dla karty sieciowej. Po zapisaniu danych w czasie wykonywania są przywracane za pomocą żądań zestawu identyfikatorów OID OID_SWITCH_NIC_RESTORE.

Po odebraniu żądania metody OID_SWITCH_NIC_SAVE rozszerzenie może wykonać jedną z następujących czynności:

  • Jeśli rozszerzenie ma dane czasu wykonywania do zapisania, inicjuje strukturę NDIS_SWITCH_NIC_SAVE_STATE i ustawia różne elementy członkowskie, takie jak element członkowski ExtensionId , w celu zidentyfikowania siebie i zapisanych danych. Rozszerzenie zapisuje również dane w strukturze NDIS_SWITCH_NIC_SAVE_STATE, zaczynając od bajtów SaveDataOffset od początku struktury, a następnie kończy żądanie metody OID przy użyciu NDIS_STATUS_SUCCESS.

  • Jeśli struktura NDIS_SWITCH_NIC_SAVE_STATE nie zapewnia wystarczającego rozmiaru bufora, określonego w elemencie Size struktury NDIS_OBJECT_HEADER, aby pomieścić stan czasu wykonywania, rozszerzenie ustawia pole BytesNeeded struktury metody na wartość NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 plus ilość bufora niezbędnego do przechowywania danych do zapisania, i kończy żądanie OID za pomocą NDIS_STATUS_BUFFER_TOO_SHORT. OID zostanie ponownie wyświetlony z wymaganym rozmiarem.

  • Jeśli rozszerzenie nie ma danych czasu wykonywania do zapisania, musi wywołać NdisFOidRequest. Spowoduje to przekazanie żądania metody OID do podstawowych rozszerzeń w rozszerzalnym stosie sterowników przełącznika. Aby uzyskać więcej informacji na temat tej procedury, zobacz Filtrowanie żądań OID w sterowniku filtru NDIS.

Aby uzyskać więcej informacji na temat tego żądania OID, zobacz Obsługa żądania OID_SWITCH_NIC_SAVE.

OID_SWITCH_NIC_SAVE_COMPLETE
Rozszerzalny interfejs przełącznika sygnalizuje krawędź protokołu rozszerzalnego przełącznika, aby wydać ten identyfikator OID po zakończeniu operacji zapisywania danych czasu wykonywania dla rozszerzonej karty sieciowej przełącznika.

To żądanie OID powiadamia rozszerzenie, że operacja zapisywania została zakończona tylko dla określonego rozszerzalnego interfejsu sieciowego przełącznika.

Aby uzyskać więcej informacji na temat tego żądania OID, zobacz Obsługa żądania OID_SWITCH_NIC_SAVE_COMPLETE.

Podczas operacji zapisywania danych w czasie pracy protokół na krawędzi rozszerzalnego przełącznika wystawia żądania OID OID_SWITCH_NIC_SAVE i OID_SWITCH_NIC_SAVE_COMPLETE dla interfejsu sieciowego partycji podrzędnej Hyper-V, który jest połączony. Jeśli wiele partycji podrzędnych Hyper-V jest zatrzymanych lub migrowanych na żywo, brzeg protokołu wystawia oddzielne zestawy OID_SWITCH_NIC_SAVE i OID_SWITCH_NIC_SAVE_COMPLETE żądań dla każdego połączenia interfejsu sieciowego.

Uwaga Krawędź protokołu przełącznika rozszerzalnego nie będzie przeplatać operacji zapisywania dla danych dotyczących działania w czasie rzeczywistym dla tej samej karty sieciowej. Krawędź protokołu uruchomi operację zapisywania danych podczas działania dla karty sieciowej dopiero po zakończeniu poprzedniej operacji zapisywania na tej samej karcie sieciowej. Jednak krawędź protokołu może uruchomić operację zapisywania dla karty sieciowej, podczas gdy inna operacja zapisywania jest w toku dla innej karty sieciowej. Z tego powodu zdecydowanie zalecamy, aby rozszerzenia wykonywały operacje zapisywania w trybie nieprzeplatanym. Na przykład rozszerzenia nie powinny zakładać, że nowa operacja zapisywania nie może uruchomić się na innej karcie sieciowej, zanim bieżąca operacja zapisywania została ukończona dla innej karty sieciowej.