OID_SWITCH_NIC_SAVE
Граница протокола расширяемого коммутатора Hyper-V выдает запрос метода идентификатора объекта (OID) OID_SWITCH_NIC_SAVE во время операции для сохранения данных времени выполнения для порта расширяемого коммутатора и подключения к его сетевому адаптеру. Расширение возвращает эти данные, чтобы данные времени выполнения можно было сохранить и восстановить позже. После сохранения данных времени выполнения они восстанавливаются с помощью запросов на набор OID OID_SWITCH_NIC_RESTORE.
Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_SWITCH_NIC_SAVE_STATE . Эта структура выделяется краем протокола расширяемого коммутатора.
Комментарии
При получении запроса метода OID OID_SWITCH_NIC_SAVE расширение расширяемого коммутатора сохраняет данные времени выполнения, выполняя следующие действия.
Расширение сохраняет данные в структуре NDIS_SWITCH_NIC_SAVE_STATE , начиная с байтов SaveDataOffset с начала структуры.
Если предоставленный параметр SaveDataSize недостаточно велик для хранения необходимых сохраненных данных, расширение устанавливает в поле BytesNeeded в структуре метода значение NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 плюс объем буфера, необходимый для хранения сохраненных данных, и завершает OID с NDIS_STATUS_BUFFER_TOO_SHORT. OID будет переиздано с требуемым размером.
Расширение заполняет поля ExtensionId и ExtensionFriendlyName собственным идентификатором и именем, а также завершает запрос метода OID с NDIS_STATUS_SUCCESS. Это приводит к тому, что граница протокола расширяемого коммутатора выдает другой запрос метода OID, чтобы разрешить расширению либо возвращать больше сохраненных данных, либо разрешать другим расширениям в стеке сохранять собственные данные.
Примечание Если у расширения нет данных времени выполнения для сохранения, оно должно вызвать NdisFOidRequest , чтобы перенаправить этот запрос метода OID базовым расширениям в стеке драйвера расширяемого коммутатора. Дополнительные сведения об этой процедуре см. в разделе Фильтрация запросов OID в драйвере фильтра NDIS.
Расширяемый коммутатор Hyper-V заполняет поля Header, PortId, NicIdex, SaveDataSize и SaveDataOffset структуры перед выдачей OID. Расширение не может изменять эти поля.
Запросы метода OID OID_SWITCH_NIC_SAVE в конечном итоге обрабатываются базовым краем мини-порта расширяемого коммутатора. После того как этот запрос метода OID был получен краем минипорта расширяемого коммутатора, он завершает запрос OID с NDIS_STATUS_SUCCESS. Это уведомляет границу протокола расширяемого коммутатора о том, что все расширения в стеке драйверов расширяемого коммутатора были запрошены для данных времени выполнения. Затем граница протокола расширяемого коммутатора отправляет запрос на набор OID OID_SWITCH_NIC_SAVE_COMPLETE для завершения операции сохранения.
Дополнительные сведения о том, как сохранить данные времени выполнения для порта расширяемого коммутатора, см. в статье Сохранение данных расширенного коммутатора Hyper-V Run-Time.
Коды состояния возврата
Расширение расширяемого коммутатора возвращает один из следующих кодов состояния для запроса метода OID OID_SWITCH_NIC_SAVE.
Код состояния | Описание |
---|---|
NDIS_STATUS_BUFFER_TOO_SHORT |
Длина информационного буфера слишком мала для NDIS_SWITCH_NIC_SAVE_STATE и связанных с ним данных времени выполнения. Расширение расширяемого коммутатора должно задать data. METHOD_INFORMATION. Элемент BytesNeeded в NDIS_OID_REQUEST структуру до минимального требуемого размера буфера. |
NDIS_STATUS_SUCCESS |
Расширение возвращает это состояние, если возвращает данные времени выполнения для сохранения. |
NDIS_STATUS_Xxx |
Сбой запроса по другим причинам. |
Базовый край минипорта расширяемого коммутатора возвращает следующий код состояния для запроса метода OID OID_SWITCH_NIC_SAVE.
Код состояния | Описание |
---|---|
NDIS_STATUS_SUCCESS |
Запрос OID успешно завершен. |
Требования
Версия |
Поддерживается в NDIS 6.30 и более поздних версиях. |
Заголовок |
Ntddndis.h (включая Ndis.h) |