Поделиться через


Операции сохранения расширяемого коммутатора Hyper-V

При остановке, сохранении или динамической миграции дочернего раздела Hyper-V сохраняется состояние секции во время выполнения. Во время операции сохранения расширение коммутатора Hyper-V может сохранять данные о сетевом адаптере расширяемого коммутатора (NIC) во время выполнения.

При выполнении операции сохранения в дочерней секции Hyper-V расширяемый интерфейс коммутатора уведомляет расширение об этой операции. Расширение получает уведомление с помощью следующих запросов идентификатора объекта (OID):

OID_SWITCH_NIC_SAVE
Интерфейс расширяемого коммутатора сигнализирует границе протокола расширяемого коммутатора для выдачи этого идентификатора идентификатора во время операции сохранения для сетевого адаптера расширяемого коммутатора. При обработке этого запроса OID расширение возвращает данные времени выполнения для сетевого адаптера. После сохранения данных времени выполнения они восстанавливаются с помощью запросов на набор OID OID_SWITCH_NIC_RESTORE.

При получении запроса метода OID_SWITCH_NIC_SAVE расширение может выполнить одно из следующих действий:

  • Если расширение имеет данные времени выполнения для сохранения, оно инициализирует структуру NDIS_SWITCH_NIC_SAVE_STATE и задает различные члены, такие как элемент ExtensionId , для идентификации себя и сохраняемых данных. Расширение также сохраняет данные в структуре NDIS_SWITCH_NIC_SAVE_STATE , начиная с байтов SaveDataOffset с начала структуры, а затем завершает запрос метода OID с NDIS_STATUS_SUCCESS.

  • Если структура NDIS_SWITCH_NIC_SAVE_STATE не предоставляет достаточный размер буфера, указанный в элементе NDIS_OBJECT_HEADER Size для хранения состояния времени выполнения, расширение задает для поля BytesNeeded в структуре метода значение NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 плюс объем буфера, необходимый для хранения данных сохранения. и завершает OID с помощью NDIS_STATUS_BUFFER_TOO_SHORT. OID будет переиздано с требуемым размером.

  • Если у расширения нет данных времени выполнения для сохранения, оно должно вызвать NdisFOidRequest. Это перенаправит запрос метода OID в базовые расширения в стеке драйверов расширяемого коммутатора. Дополнительные сведения об этой процедуре см. в разделе Фильтрация запросов OID в драйвере фильтра NDIS.

Дополнительные сведения об этом запросе OID см. в разделе Обработка запроса OID_SWITCH_NIC_SAVE.

OID_SWITCH_NIC_SAVE_COMPLETE
Интерфейс расширяемого коммутатора сигнализирует границе протокола расширяемого коммутатора о выдаче этого идентификатора идентификатора при завершении операции сохранения данных времени выполнения для сетевого адаптера расширяемого коммутатора.

Этот запрос OID уведомляет расширение о том, что операция сохранения завершена только для указанного сетевого адаптера расширяемого коммутатора.

Дополнительные сведения об этом запросе OID см. в разделе Обработка запроса OID_SWITCH_NIC_SAVE_COMPLETE.

Во время операции сохранения данных во время выполнения граница протокола расширяемого коммутатора выдает запросы OID OID_SWITCH_NIC_SAVE и OID_SWITCH_NIC_SAVE_COMPLETE для сетевого интерфейса дочерней секции Hyper-V подключен. Если несколько дочерних секций Hyper-V остановлены или перенесены в реальном времени, пограничный протокол выдает отдельные наборы OID_SWITCH_NIC_SAVE и OID_SWITCH_NIC_SAVE_COMPLETE запросов для каждого подключения к сетевому интерфейсу.

Примечание Граница протокола расширяемого коммутатора не будет чередуть операции сохранения для данных времени выполнения для той же сетевой карты. Пограничный протокол запускает операцию сохранения данных во время выполнения для сетевого адаптера только после завершения предыдущей операции сохранения в той же сетевой карты. Однако пограничный сервер протокола может запустить операцию сохранения для сетевого адаптера, в то время как для другой сетевой карты выполняется другая операция сохранения. Поэтому настоятельно рекомендуется, чтобы расширения выполняли операции сохранения без чередование. Например, расширения не должны предполагать, что новая операция сохранения не может запуститься на другом сетевом адаптере до завершения текущей операции сохранения для другого сетевого адаптера.