Сетевые адаптеры виртуальных машин
Сетевой адаптер виртуальной машины предоставляется в гостевой операционной системе, которая выполняется в дочернем разделе Hyper-V.
Примечание В Hyper-V дочерний раздел также называется виртуальной машиной.
Сетевой адаптер виртуальной машины поддерживает следующие типы виртуализации:
- Сетевой адаптер виртуальной машины может быть синтетической виртуализацией сетевого адаптера (синтетического сетевого адаптера). В этом случае клиент сетевой виртуальной службы (NetVSC), работающий на виртуальной машине, предоставляет этот виртуальный сетевой адаптер. NetVSC перенаправит пакеты на порт расширяемого коммутатора через шину виртуальной машины (VMBus).
- Сетевой адаптер виртуальной машины может быть эмулированной виртуализацией физического сетевого адаптера (эмулированного сетевого адаптера). В этом случае сетевой адаптер виртуальной машины имитирует сетевой адаптер Intel и использует аппаратную эмуляцию для пересылки пакетов в порт расширяемого коммутатора и из нее.
На следующем рисунке показан интерфейс между сетевыми адаптерами виртуальных машин и расширяемым коммутатором NDIS 6.40 (Windows Server 2012 R2) и более поздними версиями.

На следующем рисунке показан интерфейс между сетевыми адаптерами виртуальных машин и расширяемым коммутатором для NDIS 6.30 (Windows Server 2012).

При запуске виртуальной машины Hyper-V пользователь выполняет следующие действия.
- Граница протокола расширяемого коммутатора выдает запрос на набор идентификатора объекта (OID) OID_SWITCH_PORT_CREATE вниз по стеку драйвера расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о создании порта для виртуальной машины.
- Граница протокола расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_CREATE вниз по стеку драйверов расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о создании сетевого подключения для сетевого адаптера виртуальной машины для ранее созданного порта виртуальной машины.
- Когда сетевые стеки работают и привязаны к сетевому адаптеру виртуальной машины, граница протокола расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_CONNECT вниз по стеку драйверов расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о том, что сетевое подключение для сетевого адаптера виртуальной машины подключено и работает. На этом этапе расширение может проверять, внедрять и пересылать пакеты на порт, подключенный к сетевому адаптеру виртуальной машины.
При остановке виртуальной машины Hyper-V пользователь выполняет следующие действия.
- Граница протокола расширяемого коммутатора выдает запрос набора OID OID_SWITCH_NIC_DISCONNECT вниз по стеку драйверов расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о том, что подключение к сетевому адаптеру виртуальной машины разрывается.
- После завершения всего пакетного трафика и запросов OID, предназначенных для сетевого подключения, граница протокола расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_DELETE вниз по стеку драйверов расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о том, что подключение к сетевому адаптеру виртуальной машины было корректно удалено.
- Граница протокола расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_PORT_TEARDOWN вниз по стеку драйверов расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о том, что порт, используемый для подключения сетевого адаптера виртуальной машины, удаляется.
- Граница протокола расширяемого коммутатора выдает запрос набора OID OID_SWITCH_PORT_DELETE вниз по стеку драйвера расширяемого коммутатора. Этот запрос OID уведомляет базовые расширения расширяемого коммутатора о том, что порт виртуальной машины был снес и удален.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Windows driver documentation
Краткий обзор драйверов спецификации NDIS
Сетевые драйверы можно разделить на 2 категории: TDI-драйверы (Transport Driver Interface) и NDIS-драйверы (Network Driver Interface Specification). TDI-драйверы — это высокоуровневые драйверы, например, SMB-клиент, SMB-сервер, обертки SMB (NFFS, MSFS) и т.п. Мы с Вами рассмотрим NDIS-драйвера. NDIS — это специальный драйвер (ему соответствует файл ndis.sys), который содержит функции, используемые низкоуровневыми сетевыми драйверами. NDIS как бы обволакивает низкоуровневые сетевые драйверы и является посредником в их общении между собой и с железом. По сути NDIS можно считать третьим ядром Windows. Чтобы более четко уяснить себе что из себя представляет NDIS можно посмтореть на следующую картинку:
- Минипорт-драйверы (драйверы адаптера)
- Промежуточные драйверы (например, psched.sys)
- Драйверы протокола (например, tcpip.sys)
Минипорт-драйверы
- производит инициализацию своего устройства (адаптера)
- создание /включение/выключение/удаление сетевых подключений
- выдача клиенту или изменение параметров адаптера
- отправка пакетов
- получение пакетов
- оповещение ОС о состоянии адаптера
- перезагрузка и остановка адаптера
Минипорт-драйверы бывают «Connectionless» (например, драйвер Ethernet-адаптера) и «Сonnection-oriented» (например, драйвер модема). У Сonnection-oriented драйверов система коллбэков чуть сложнее, в нее входят обработчики событий, связанных с подключением к каналу связи, отключением от канала, выбором канала (для беспроводных адаптеров) и т.п. Для некоторых операций Сonnection-oriented драйверы вызывают специальные функции NDIS, отличающиеся префиксом «Со» в имени (например, вместо NdisMIndicateReceivePacket Сonnection-oriented драйвер должен вызывать NdisMColndicateReceivePacket).
Каждый коллбэк выполняет свою задачу: выдача информации, отправка данных, прием данных и т.п. Подробнее можно посмотреть в хелпе к WDK (DDK). Там можно получить полную информацию о коллбэках.
Драйверы протоколов могут передоверять минипорт-драйверу (при условии, что минипорт-драйвер это умеет — либо сам, либо адаптер умеет это делать на аппаратном уровне) некоторые свои функции (например, разграничить контрольную сумму или цифровую подпись IP-пакета или принять решение, как фрагментировать большой ТСP-пакет). Это значительно повышает производитель сети.
- LBFO (Load Balancing and Fail Over) — позволяет понимающим его адаптерам распределять между собой исходящий трафик и исправлять ошибки друг друга. Впрочем, что имеет смысл только на backbone routers (центральных маршрутизаторах больших сетей), на которые редко ставят Windows
- FFP (Fast Forwarding Path) — позволяет понимающим его адаптерам маршрутизировать/фильтровать пакеты чисто аппаратно, вообще без участия ОС и не нагружая основные процессоры компьютера
Промежуточные драйверы
Промежуточный драйвер сверху виден как минипорт-драйвер (смотрим на картинку), т.е. как бы виртуальный адаптер, а снизу — как драйвер протокола (снова смотрим на картинку), как бы виртуальный протокол. Как частный случай, возможна ситуация, когда промежуточный драйвер виден только сверху.
- организуют «справедливый» доступ разных клиентских программ к адаптерам дабы программы не мешали друг другу
- фильтруют и перехватывают трафик
- маршрутизируют пакеты из одной сети в другую, если эти сети различаются (например, Ethernet и WI-FI)
Драйверы протоколов
Драйверы протокола — это самый верхний уровень спецификации NDIS. Эти драйверы занимаются тем, что выделяют ресурсы для соответствующих пакетов, копируют данные приложений в пакеты и передают их драйверам нижнего уровня. Также драйверы протоколов обеспечивают интерфейс для получения пакетов от нижележащих драйверов.
К драйверам протоколов относятся и драйверы транспорта, реализующие стек сетевых протоколов, такой как например TCP/IP (tspip.sys).
Если пост будет интересен читателям, то в следующих постах можно конкретно на примере написать свой сниферо-подобный промежуточный драйвер или также описать как написать каждый из типов драйверов (минипорта, промежуточный или протокола).
Спасибо за внимание.
Системные устройства Windows 10
Привет ! Мы продолжаем разбирать операционную систему Windows 10 ! Сегодня вы узнаете как настроить системные устройства своего компьютера. Вы сможете обновить драйвера устройства, сможете узнать характеристики, свойства и ресурсы и т.д.
Чтобы открыть параметры устройств, внизу экрана слева, откройте меню «Пуск». В открывшемся окне нажмите на значок или вкладку — Параметры .

Далее, на странице «Параметры» нажмите на вкладку — Устройства .

Далее, на странице «Устройства», внизу страницы, нажмите на вкладку — Диспетчер устройств .

Далее, на странице «Диспетчер устройств», нажмите два раза на вкладку — Системные устройства . У вас откроются вложения. Нажмите два раза по вкладке устройства. Вам могут быть доступны следующие устройства:
— CMOS системы и часы реального времени.
— Intel Pentium processor N and j-series / Celeron processor N and j-series PCI Express Root Port 4 0F4E.
— SoC Transaction Router.
— Platform Control Unit LPC.
— Bridge to Intel Legacy Block.
— PCl Express Root Port 3, 1.
— Platform Control Unit SMBus Port.
— Intel Trusted Execution Engine Interface.
— IWD Bus Enumerator.
— Microsoft ACPI совместимая система.
— Microsoft UEFI совместимая система.
— PCI Express Root Complex.
— Remote Desktop Device Redirector Bus.
— UMBus перечислитель корневой шины.
— Встроенный контроллер Microsoft, соответствующий стандарту ACPI.
— Высокоточный таймер событий.
— Драйвер Microsoft System Management Bios.
— Интерфейс управления для ACPI Microsoft Windows.
— Кнопка питания ACPI.
— Кнопка спящего режима ACPI.
— Контроллер High Definition Audio.
— Перечислитель виртуальных дисков.
— Перечислитель виртуальных сетевых адаптеров NDIS.
— Перечислитель композитной шины.
— Перечислитель программных устройств Plug and Play.
— Подключаемый модуль управления питанием Intel.
— Программируемый контроллер прерываний.
— Термальная зона ACPI.
— Фиксированная функциональная кнопка ACPI.

Далее, в свойствах устройства вы можете узнать и настроить:
Общие:
— Вы можете узнать тип устройства.
Драйвер:
— Вы можете узнать поставщика драйвера.
— Версию и цифровую подпись.
— Сведения о файлах драйвера.
— Вы можете обновить драйвер.
— Можно откатить драйвер к предыдущему.
— Можно отключить устройство.
— Можно удалить драйвер.
Сведения:
— Вы можете узнать значения свойств устройства.
— Выберите свойство и вам автоматически покажут его значение.
— Например, вы можете узнать код проблемы, дату установки, ИД конфигурации и т.д.
События:
— Вы можете узнать события, которые происходили с устройством.
— Можно узнать дату и время события.
— Можно узнать описание событий.
Ресурсы:
— Вы можете узнать параметры ресурсов.
— Список конфликтующих устройств.
— В конце нажмите на кнопку OK, чтобы сохранить изменения.

Всё готово ! Теперь вы знаете где находятся системные устройства на компьютере Windows 10 !
Коды ошибок COM (FWP, WS, NDIS, HyperV)
В следующей таблице приведен список кодов ошибок, используемых API на основе COM.
Если у вас возникают проблемы с устанавливаемым или запущенным приложением, обратитесь в службу поддержки клиентов для программного обеспечения, отображающего сообщение об ошибке. Чтобы получить поддержку для продукта Майкрософт, перейдите по адресу https://support.microsoft.com.
| Констант/значение | Описание |
|---|---|
| FWP_E_CALLOUT_NOT_FOUND 0x80320001 | Выноска не существует. |
| FWP_E_CONDITION_NOT_FOUND 0x80320002 | Условие фильтра не существует. |
| FWP_E_FILTER_NOT_FOUND 0x80320003 | Фильтр не существует. |
| FWP_E_LAYER_NOT_FOUND 0x80320004 | Слой не существует. |
| FWP_E_PROVIDER_NOT_FOUND 0x80320005 | Поставщик не существует. |
| FWP_E_PROVIDER_CONTEXT_NOT_FOUND 0x80320006 | Контекст поставщика не существует. |
| FWP_E_SUBLAYER_NOT_FOUND 0x80320007 | Подслой не существует. |
| FWP_E_NOT_FOUND 0x80320008 | Объект не существует. |
| FWP_E_ALREADY_EXISTS 0x80320009 | Объект с этим ИДЕНТИФИКАТОРом GUID или LUID уже существует. |
| FWP_E_IN_USE 0x8032000A | На объект ссылаются другие объекты, поэтому его нельзя удалить. |
| FWP_E_DYNAMIC_SESSION_IN_PROGRESS 0x8032000B | Вызов из динамического сеанса не допускается. |
| FWP_E_WRONG_SESSION 0x8032000C | Вызов был выполнен из неправильного сеанса, поэтому его невозможно выполнить. |
| FWP_E_NO_TXN_IN_PROGRESS 0x8032000D | Вызов должен выполняться из явной транзакции. |
| FWP_E_TXN_IN_PROGRESS 0x8032000E | Вызов из явной транзакции запрещен. |
| FWP_E_TXN_ABORTED 0x8032000F | Явная транзакция была принудительно отменена. |
| FWP_E_SESSION_ABORTED 0x80320010 | Сеанс отменен. |
| FWP_E_INCOMPATIBLE_TXN 0x80320011 | Вызов из транзакции, доступной только для чтения, запрещен. |
| FWP_E_TIMEOUT 0x80320012 | Время ожидания ожидания получения блокировки транзакции истекло. |
| FWP_E_NET_EVENTS_DISABLED 0x80320013 | Сбор событий диагностики сети отключен. |
| FWP_E_INCOMPATIBLE_LAYER 0x80320014 | Операция не поддерживается указанным слоем. |
| FWP_E_KM_CLIENTS_ONLY 0x80320015 | Вызов разрешен только для вызывающих элементов в режиме ядра. |
| FWP_E_LIFETIME_MISMATCH 0x80320016 | Вызов пытался связать два объекта с несовместимыми временем существования. |
| FWP_E_BUILTIN_OBJECT 0x80320017 | Объект встроен, поэтому его нельзя удалить. |
| FWP_E_TOO_MANY_CALLOUTS 0x80320018 | Достигнуто максимальное количество выносок. |
| FWP_E_NOTIFICATION_DROPPED 0x80320019 | Не удалось доставить уведомление, так как очередь сообщений находится на максимальной емкости. |
| FWP_E_TRAFFIC_MISMATCH 0x8032001A | Параметры трафика не соответствуют параметрам для контекста связи безопасности. |
| FWP_E_INCOMPATIBLE_SA_STATE 0x8032001B | Вызов не допускается для текущего состояния связи безопасности. |
| FWP_E_NULL_POINTER 0x8032001C | Обязательный указатель имеет значение NULL. |
| FWP_E_INVALID_ENUMERATOR 0x8032001D | Недопустимый перечислитель. |
| FWP_E_INVALID_FLAGS 0x8032001E | Поле флагов содержит недопустимое значение. |
| FWP_E_INVALID_NET_MASK 0x8032001F | Недопустимая сетевая маска. |
| FWP_E_INVALID_RANGE 0x80320020 | Недопустимый FWP_RANGE. |
| FWP_E_INVALID_INTERVAL 0x80320021 | Недопустимый интервал времени. |
| FWP_E_ZERO_LENGTH_ARRAY 0x80320022 | Массив, который должен содержать хотя бы один элемент, имеет нулевую длину. |
| FWP_E_NULL_DISPLAY_NAME 0x80320023 | Поле displayData.name не может иметь значение NULL. |
| FWP_E_INVALID_ACTION_TYPE 0x80320024 | Тип действия не является одним из разрешенных типов действий для фильтра. |
| FWP_E_INVALID_WEIGHT 0x80320025 | Недопустимый вес фильтра. |
| FWP_E_MATCH_TYPE_MISMATCH 0x80320026 | Условие фильтра содержит тип соответствия, несовместимый с операндами. |
| FWP_E_TYPE_MISMATCH 0x80320027 | FWP_VALUE или FWPM_CONDITION_VALUE имеет неправильный тип. |
| FWP_E_OUT_OF_BOUNDS 0x80320028 | Целочисленное значение находится за пределами допустимого диапазона. |
| FWP_E_RESERVED 0x80320029 | Зарезервированное поле не равно нулю. |
| FWP_E_DUPLICATE_CONDITION 0x8032002A | Фильтр не может содержать несколько условий, работающих в одном поле. |
| FWP_E_DUPLICATE_KEYMOD 0x8032002B | Политика не может содержать один и тот же модуль ключей несколько раз. |
| FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER 0x8032002C | Тип действия несовместим со слоем. |
| FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER 0x8032002D | Тип действия несовместим с подслоем. |
| FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER 0x8032002E | Необработанный контекст или контекст поставщика несовместим со слоем. |
| FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT 0x8032002F | Необработанный контекст или контекст поставщика несовместим с выноской. |
| FWP_E_INCOMPATIBLE_AUTH_METHOD 0x80320030 | Метод проверки подлинности несовместим с типом политики. |
| FWP_E_INCOMPATIBLE_DH_GROUP 0x80320031 | Группа Diffie-Hellman несовместима с типом политики. |
| FWP_E_EM_NOT_SUPPORTED 0x80320032 | Политика IKE не может содержать политику расширенного режима. |
| FWP_E_NEVER_MATCH 0x80320033 | Шаблон перечисления или подписка никогда не будут соответствовать ни одному объекту. |
| FWP_E_PROVIDER_CONTEXT_MISMATCH 0x80320034 | Контекст поставщика имеет неправильный тип. |
| FWP_E_INVALID_PARAMETER 0x80320035 | Неправильный параметр». |
| FWP_E_TOO_MANY_SUBLAYERS 0x80320036 | Достигнуто максимальное число вложенных слоев. |
| FWP_E_CALLOUT_NOTIFICATION_FAILED 0x80320037 | Функция уведомления для выноски вернула ошибку. |
| FWP_E_INVALID_AUTH_TRANSFORM 0x80320038 | Недопустимое преобразование проверки подлинности IPsec. |
| FWP_E_INVALID_CIPHER_TRANSFORM 0x80320039 | Недопустимое преобразование шифра IPsec. |
| FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM 0x8032003A | Преобразование шифра IPsec несовместимо с политикой. |
| FWP_E_INVALID_TRANSFORM_COMBINATION 0x8032003B | Недопустимое сочетание типов преобразования IPsec. |
| FWP_E_DUPLICATE_AUTH_METHOD 0x8032003C | Политика не может содержать один и тот же метод проверки подлинности несколько раз. |
| FWP_E_INVALID_TUNNEL_ENDPOINT 0x8032003D | Недопустимая конфигурация конечной точки туннеля. |
| FWP_E_L2_DRIVER_NOT_READY 0x8032003E | Уровни MAC ДЛЯ МПП еще не готовы. |
| FWP_E_KEY_DICTATOR_ALREADY_REGISTERED 0x8032003F | Диспетчер ключей, способный диктовать ключи, уже зарегистрирован |
| FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL 0x80320040 | Диспетчер ключей диктовал недопустимые ключи |
| FWP_E_CONNECTIONS_DISABLED 0x80320041 | Отслеживание подключений IPsec BFE отключено. |
| FWP_E_INVALID_DNS_NAME 0x80320042 | Недопустимое DNS-имя. |
| FWP_E_STILL_ON 0x80320043 | Параметр подсистемы по-прежнему включен из-за других параметров конфигурации. |
| FWP_E_IKEEXT_NOT_RUNNING 0x80320044 | Служба IKEEXT не запущена. Эта служба запускается только при применении политики IPsec к компьютеру. |
| FWP_E_DROP_NOICMP 0x80320104 | Пакет должен быть удален, не следует отправлять ICMP. |
| WS_S_ASYNC 0x003D0000 | Вызов функции завершается асинхронно. |
| WS_S_END 0x003D0001 | На канале больше нет доступных сообщений. |
| WS_E_INVALID_FORMAT 0x803D0000 | Входные данные не были в ожидаемом формате или не имели ожидаемого значения. |
| WS_E_OBJECT_FAULTED 0x803D0001 | Не удалось завершить операцию, так как объект находится в состоянии сбоя из-за предыдущей ошибки. |
| WS_E_NUMERIC_OVERFLOW 0x803D0002 | Не удалось завершить операцию, так как это приведет к числовой переполнению. |
| WS_E_INVALID_OPERATION 0x803D0003 | Операция не разрешена из-за текущего состояния объекта . |
| WS_E_OPERATION_ABORTED 0x803D0004 | Операция была прервана. |
| WS_E_ENDPOINT_ACCESS_DENIED 0x803D0005 | Удаленная конечная точка запретила доступ. |
| WS_E_OPERATION_TIMED_OUT 0x803D0006 | Операция не была завершена в отведенное время. |
| WS_E_OPERATION_ABANDONED 0x803D0007 | Операция была прекращена. |
| WS_E_QUOTA_EXCEEDED 0x803D0008 | Превышена квота. |
| WS_E_NO_TRANSLATION_AVAILABLE 0x803D0009 | Информация не была доступна на указанном языке. |
| WS_E_SECURITY_VERIFICATION_FAILURE 0x803D000A | Проверка безопасности не прошла успешно для полученных данных. |
| WS_E_ADDRESS_IN_USE 0x803D000B | Адрес уже используется. |
| WS_E_ADDRESS_NOT_AVAILABLE 0x803D000C | Адрес недопустим для этого контекста. |
| WS_E_ENDPOINT_NOT_FOUND 0x803D000D | Удаленная конечная точка не существует или не может быть найдена. |
| WS_E_ENDPOINT_NOT_AVAILABLE 0x803D000E | Удаленная конечная точка в настоящее время не обслуживается в этом расположении. |
| WS_E_ENDPOINT_FAILURE 0x803D000F | Удаленной конечной точке не удалось обработать запрос. |
| WS_E_ENDPOINT_UNREACHABLE 0x803D0010 | Удаленная конечная точка недоступна. |
| WS_E_ENDPOINT_ACTION_NOT_SUPPORTED 0x803D0011 | Удаленная конечная точка не поддерживала операцию. |
| WS_E_ENDPOINT_TOO_BUSY 0x803D0012 | Удаленная конечная точка не может обработать запрос из-за перегрузки. |
| WS_E_ENDPOINT_FAULT_RECEIVED 0x803D0013 | Сообщение, содержащее ошибку, получено от удаленной конечной точки. |
| WS_E_ENDPOINT_DISCONNECTED 0x803D0014 | Подключение к удаленной конечной точке было прервано. |
| WS_E_PROXY_FAILURE 0x803D0015 | Прокси-серверу HTTP не удалось обработать запрос. |
| WS_E_PROXY_ACCESS_DENIED 0x803D0016 | Прокси-сервер HTTP отказал в доступе. |
| WS_E_NOT_SUPPORTED 0x803D0017 | Запрошенная функция недоступна на этой платформе. |
| WS_E_PROXY_REQUIRES_BASIC_AUTH 0x803D0018 | Для прокси-сервера HTTP требуется базовая схема проверки подлинности HTTP. |
| WS_E_PROXY_REQUIRES_DIGEST_AUTH 0x803D0019 | Для прокси-сервера HTTP требуется схема проверки подлинности HTTP «digest». |
| WS_E_PROXY_REQUIRES_NTLM_AUTH 0x803D001A | Для прокси-сервера HTTP требуется схема проверки подлинности HTTP NTLM. |
| WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH 0x803D001B | Для прокси-сервера HTTP требуется схема проверки подлинности HTTP negotiate. |
| WS_E_SERVER_REQUIRES_BASIC_AUTH 0x803D001C | Для удаленной конечной точки требуется базовая схема проверки подлинности HTTP. |
| WS_E_SERVER_REQUIRES_DIGEST_AUTH 0x803D001D | Для удаленной конечной точки требуется схема проверки подлинности HTTP «digest». |
| WS_E_SERVER_REQUIRES_NTLM_AUTH 0x803D001E | Для удаленной конечной точки требуется схема проверки подлинности HTTP NTLM. |
| WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH 0x803D001F | Для удаленной конечной точки требуется схема проверки подлинности HTTP negotiate. |
| WS_E_INVALID_ENDPOINT_URL 0x803D0020 | Недопустимый URL-адрес конечной точки. |
| WS_E_OTHER 0x803D0021 | На платформе веб-служб Windows произошла нераспознанная ошибка. |
| WS_E_SECURITY_TOKEN_EXPIRED 0x803D0022 | Маркер безопасности был отклонен сервером, так как срок его действия истек. |
| WS_E_SECURITY_SYSTEM_FAILURE 0x803D0023 | Сбой операции безопасности в платформе веб-служб Windows. |
| ERROR_NDIS_INTERFACE_CLOSING 0x80340002 | Привязка к сетевому интерфейсу закрывается. |
| ERROR_NDIS_BAD_VERSION 0x80340004 | Указана недопустимая версия. |
| ERROR_NDIS_BAD_CHARACTERISTICS 0x80340005 | Была использована таблица недопустимых характеристик. |
| ERROR_NDIS_ADAPTER_NOT_FOUND 0x80340006 | Не удалось найти сетевой интерфейс или сетевой интерфейс не готов. |
| ERROR_NDIS_OPEN_FAILED 0x80340007 | Не удалось открыть сетевой интерфейс. |
| ERROR_NDIS_DEVICE_FAILED 0x80340008 | Сетевой интерфейс обнаружил внутренний неустранимый сбой. |
| ERROR_NDIS_MULTICAST_FULL 0x80340009 | Список многоадресной рассылки в сетевом интерфейсе заполнен. |
| ERROR_NDIS_MULTICAST_EXISTS 0x8034000A | Предпринята попытка добавить дублирующийся адрес многоадресной рассылки в список. |
| ERROR_NDIS_MULTICAST_NOT_FOUND 0x8034000B | При попытке удалить адрес многоадресной рассылки, который никогда не добавлялся. |
| ERROR_NDIS_REQUEST_ABORTED 0x8034000C | Интерфейс Netowork прерван запрос. |
| ERROR_NDIS_RESET_IN_PROGRESS 0x8034000D | Сетевой интерфейс не может обработать запрос, так как он сбрасывается. |
| ERROR_NDIS_NOT_SUPPORTED 0x803400BB | Интерфейс Netword не поддерживает этот запрос. |
| ERROR_NDIS_INVALID_PACKET 0x8034000F | Предпринята попытка отправить недопустимый пакет в сетевом интерфейсе. |
| ERROR_NDIS_ADAPTER_NOT_READY 0x80340011 | Сетевой интерфейс не готов к выполнению этой операции. |
| ERROR_NDIS_INVALID_LENGTH 0x80340014 | Недопустимая длина буфера, отправленного для этой операции. |
| ERROR_NDIS_INVALID_DATA 0x80340015 | Недопустимые данные, используемые для этой операции. |
| ERROR_NDIS_BUFFER_TOO_SHORT 0x80340016 | Длина буфера, отправленного для этой операции, слишком мала. |
| ERROR_NDIS_INVALID_OID 0x80340017 | Сетевой интерфейс не поддерживает этот OID (идентификатор объекта) |
| ERROR_NDIS_ADAPTER_REMOVED 0x80340018 | Сетевой интерфейс удален. |
| ERROR_NDIS_UNSUPPORTED_MEDIA 0x80340019 | Сетевой интерфейс не поддерживает этот тип мультимедиа. |
| ERROR_NDIS_GROUP_ADDRESS_IN_USE 0x8034001A | Предпринята попытка удалить адрес группы кругов маркеров, который используется другими компонентами. |
| ERROR_NDIS_FILE_NOT_FOUND 0x8034001B | Предпринята попытка сопоставить файл, который не удается найти. |
| ERROR_NDIS_ERROR_READING_FILE 0x8034001C | Ошибка при попытке NDIS сопоставить файл. |
| ERROR_NDIS_ALREADY_MAPPED 0x8034001D | Предпринята попытка сопоставить сопоставленный файл. |
| ERROR_NDIS_RESOURCE_CONFLICT 0x8034001E | Попытка выделить аппаратный ресурс завершилась сбоем, так как ресурс используется другим компонентом. |
| ERROR_NDIS_MEDIA_DISCONNECTED 0x8034001F | Операция ввода-вывода завершилась сбоем, так как сетевой носитель отключен или точка беспроводного доступа выходит за пределы диапазона. |
| ERROR_NDIS_INVALID_ADDRESS 0x80340022 | Сетевой адрес, используемый в запросе, недопустим. |
| ERROR_NDIS_INVALID_DEVICE_REQUEST 0x80340010 | Указанный запрос не является допустимой операцией для целевого устройства. |
| ERROR_NDIS_PAUSED 0x8034002A | Операция разгрузки на сетевом интерфейсе приостановлена. |
| ERROR_NDIS_INTERFACE_NOT_FOUND 0x8034002B | Сетевой интерфейс не найден. |
| ERROR_NDIS_UNSUPPORTED_REVISION 0x8034002C | Номер редакции, указанный в структуре, не поддерживается. |
| ERROR_NDIS_INVALID_PORT 0x8034002D | Указанный порт не существует в этом сетевом интерфейсе. |
| ERROR_NDIS_INVALID_PORT_STATE 0x8034002E | Текущее состояние указанного порта в этом сетевом интерфейсе не поддерживает запрошенную операцию. |
| ERROR_NDIS_LOW_POWER_STATE 0x8034002F | Адаптер мини-порта находится в состоянии низкого энергопотребления. |
| ERROR_NDIS_REINIT_REQUIRED 0x80340030 | Для выполнения этой операции необходимо повторно инициализировать адаптер мини-порта. |
| ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED 0x80342000 | Беспроводной сетевой интерфейс локальной сети находится в режиме автоматической настройки и не поддерживает запрошенную операцию изменения параметров. |
| ERROR_NDIS_DOT11_MEDIA_IN_USE 0x80342001 | Беспроводной сетевой интерфейс локальной сети занят и не может выполнить запрошенную операцию. |
| ERROR_NDIS_DOT11_POWER_STATE_INVALID 0x80342002 | Беспроводной сетевой интерфейс локальной сети отключен и не поддерживает запрошенную операцию. |
| ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL 0x80342003 | Список шаблонов пробуждения по локальной сети заполнен. |
| ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL 0x80342004 | Список разгрузки протокола с низким энергопотреблением заполнен. |
| ERROR_NDIS_INDICATION_REQUIRED 0x00340001 | Запрос будет завершен позже с указанием состояния NDIS. |
| ERROR_NDIS_OFFLOAD_POLICY 0xC034100F | TCP-подключение не может быть разгружено из-за параметра локальной политики. |
| ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED 0xC0341012 | TCP-подключение не разгружается целевым объектом разгрузки Chimney. |
| ERROR_NDIS_OFFLOAD_PATH_REJECTED 0xC0341013 | Объект IP-пути не находится в состоянии разгрузки. |
| ERROR_HV_INVALID_HYPERCALL_CODE 0xC0350002 | Низкоуровневая оболочка не поддерживает операцию, так как указанный код гипервызова не поддерживается. |
| ERROR_HV_INVALID_HYPERCALL_INPUT 0xC0350003 | Низкоуровневая оболочка не поддерживает операцию , так как кодировка для входного регистра гипервызова не поддерживается. |
| ERROR_HV_INVALID_ALIGNMENT 0xC0350004 | Низкоуровневой оболочке не удалось выполнить операцию, так как параметр имеет недопустимое выравнивание. |
| ERROR_HV_INVALID_PARAMETER 0xC0350005 | Низкоуровневой оболочке не удалось выполнить операцию, так как указан недопустимый параметр. |
| ERROR_HV_ACCESS_DENIED 0xC0350006 | Доступ к указанному объекту запрещен. |
| ERROR_HV_INVALID_PARTITION_STATE 0xC0350007 | Низкоуровневой оболочке не удалось выполнить операцию, так как секция входит или находится в недопустимом состоянии. |
| ERROR_HV_OPERATION_DENIED 0xC0350008 | Операция не допускается в текущем состоянии. |
| ERROR_HV_UNKNOWN_PROPERTY 0xC0350009 | Гипервизор не распознает указанное свойство секции. |
| ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE 0xC035000A | Указанное значение свойства секции выходит за пределы диапазона или нарушает инвариант. |
| ERROR_HV_INSUFFICIENT_MEMORY 0xC035000B | Недостаточно памяти в пуле гипервизоров для выполнения операции. |
| ERROR_HV_PARTITION_TOO_DEEP 0xC035000C | Превышена максимальная глубина секции для иерархии секций. |
| ERROR_HV_INVALID_PARTITION_ID 0xC035000D | Секция с указанным идентификатором секции не существует. |
| ERROR_HV_INVALID_VP_INDEX 0xC035000E | Низкоуровневой оболочке не удалось выполнить операцию, так как указанный индекс VP недопустим. |
| ERROR_HV_INVALID_PORT_ID 0xC0350011 | Низкоуровневой оболочке не удалось выполнить операцию, так как указанный идентификатор порта недопустим. |
| ERROR_HV_INVALID_CONNECTION_ID 0xC0350012 | Низкоуровневой оболочке не удалось выполнить операцию, так как указанный идентификатор подключения недопустим. |
| ERROR_HV_INSUFFICIENT_BUFFERS 0xC0350013 | Недостаточно буферов для отправки сообщения. |
| ERROR_HV_NOT_ACKNOWLEDGED 0xC0350014 | Предыдущее виртуальное прерывание не подтверждено. |
| ERROR_HV_ACKNOWLEDGED 0xC0350016 | Предыдущее виртуальное прерывание уже подтверждено. |
| ERROR_HV_INVALID_SAVE_RESTORE_STATE 0xC0350017 | Указанная секция не находится в допустимом состоянии для сохранения или восстановления. |
| ERROR_HV_INVALID_SYNIC_STATE 0xC0350018 | Низкоуровневой оболочке не удалось завершить операцию, так как была отключена обязательная функция контроллера искусственных прерываний (SynIC). |
| ERROR_HV_OBJECT_IN_USE 0xC0350019 | Низкоуровневой оболочке не удалось выполнить операцию, так как объект или значение уже используются или используются для цели, которая не позволяет завершить операцию. |
| ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO 0xC035001A | Недопустимые сведения о домене близкого взаимодействия. |
| ERROR_HV_NO_DATA 0xC035001B | Попытка получить данные отладки завершилась сбоем, так как они не были доступны. |
| ERROR_HV_INACTIVE 0xC035001C | Физическое соединение, используемое для отладки, не записало никаких действий получения с момента последней операции. |
| ERROR_HV_NO_RESOURCES 0xC035001D | Недостаточно ресурсов для завершения операции. |
| ERROR_HV_FEATURE_UNAVAILABLE 0xC035001E | Функция низкоуровневой оболочки недоступна для пользователя. |
| ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS 0xC0350038 | В настоящее время используется максимальное количество доменов, поддерживаемых оборудованием для переназначения операций ввода-вывода платформы. Для назначения этого устройства этому разделу нет доступных доменов. |
| ERROR_HV_INVALID_LP_INDEX 0xC0350041 | Низкоуровневой оболочке не удалось выполнить операцию, так как указанный индекс LP является недопустимым. |
| ERROR_HV_NOT_PRESENT 0xC0351000 | В этой системе отсутствует гипервизор. |
| ERROR_VID_DUPLICATE_HANDLER 0xC0370001 | Обработчик для драйвера инфраструктуры виртуализации уже зарегистрирован. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_TOO_MANY_HANDLERS 0xC0370002 | Количество зарегистрированных обработчиков для драйвера инфраструктуры виртуализации превысило максимальное число. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_QUEUE_FULL 0xC0370003 | Очередь сообщений для драйвера инфраструктуры виртуализации заполнена и не может принимать новые сообщения. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_HANDLER_NOT_PRESENT 0xC0370004 | Обработчик для обработки сообщения для драйвера инфраструктуры виртуализации не существует. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_INVALID_OBJECT_NAME 0xC0370005 | Недопустимое имя секции или очереди сообщений для драйвера инфраструктуры виртуализации. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_PARTITION_NAME_TOO_LONG 0xC0370006 | Имя секции драйвера инфраструктуры виртуализации превышает максимальное значение. |
| ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG 0xC0370007 | Имя очереди сообщений драйвера инфраструктуры виртуализации превышает максимальное значение. |
| ERROR_VID_PARTITION_ALREADY_EXISTS 0xC0370008 | Не удается создать секцию для драйвера инфраструктуры виртуализации, так как уже существует другая секция с тем же именем. |
| ERROR_VID_PARTITION_DOES_NOT_EXIST 0xC0370009 | Драйвер инфраструктуры виртуализации столкнулся с ошибкой. Запрошенная секция не существует. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_PARTITION_NAME_NOT_FOUND 0xC037000A | Драйвер инфраструктуры виртуализации столкнулся с ошибкой. Не удалось найти запрошенную секцию. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS 0xC037000B | Очередь сообщений с таким же именем уже существует для драйвера инфраструктуры виртуализации. |
| ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT 0xC037000C | Невозможно сопоставить страницу блока памяти для драйвера инфраструктуры виртуализации, так как достигнут предел карты страниц. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_MB_STILL_REFERENCED 0xC037000D | Блок памяти для драйвера инфраструктуры виртуализации по-прежнему используется и не может быть уничтожен. |
| ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED 0xC037000E | Не удается разблокировать массив страниц для адреса памяти гостевой операционной системы, так как он не соответствует предыдущему запросу на блокировку. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_INVALID_NUMA_SETTINGS 0xC037000F | Параметры узла с неоднородным доступом к памяти (NUMA) не соответствуют системной топологии NUMA. Чтобы запустить виртуальную машину, необходимо изменить конфигурацию NUMA. |
| ERROR_VID_INVALID_NUMA_NODE_INDEX 0xC0370010 | Индекс узла с неоднородным доступом к памяти (NUMA) не соответствует допустимому индексу в системной топологии NUMA. |
| ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED 0xC0370011 | Блок памяти для драйвера инфраструктуры виртуализации уже связан с очередью сообщений. |
| ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE 0xC0370012 | Дескриптор не является допустимым дескриптором блока памяти для драйвера инфраструктуры виртуализации. |
| ERROR_VID_PAGE_RANGE_OVERFLOW 0xC0370013 | Запрос превысил ограничение на страницу блока памяти для драйвера инфраструктуры виртуализации. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE 0xC0370014 | Дескриптор не является допустимым дескриптором очереди сообщений для драйвера инфраструктуры виртуализации. |
| ERROR_VID_INVALID_GPA_RANGE_HANDLE 0xC0370015 | Дескриптор не является допустимым дескриптором диапазона страниц для драйвера инфраструктуры виртуализации. |
| ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE 0xC0370016 | Не удается установить уведомления клиента, так как с блоком памяти не связана очередь сообщений для драйвера инфраструктуры виртуализации. |
| ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED 0xC0370017 | Сбой запроса на блокировку или сопоставление страницы блока памяти, так как достигнут предельный размер блока памяти драйвера инфраструктуры виртуализации. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_INVALID_PPM_HANDLE 0xC0370018 | Дескриптор не является допустимым дескриптором сопоставления родительского раздела для драйвера инфраструктуры виртуализации. |
| ERROR_VID_MBPS_ARE_LOCKED 0xC0370019 | Уведомления не могут быть созданы в блоке памяти, так как он используется. |
| ERROR_VID_MESSAGE_QUEUE_CLOSED 0xC037001A | Очередь сообщений для драйвера инфраструктуры виртуализации закрыта. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED 0xC037001B | Не удается добавить виртуальный процессор в раздел, так как достигнуто максимальное значение. |
| ERROR_VID_STOP_PENDING 0xC037001C | Не удается немедленно остановить виртуальный процессор из-за ожидающего перехвата. |
| ERROR_VID_INVALID_PROCESSOR_STATE 0xC037001D | Недопустимое состояние для виртуального процессора. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT 0xC037001E | Достигнуто максимальное число клиентов режима ядра для драйвера инфраструктуры виртуализации. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED 0xC037001F | Этот интерфейс режима ядра для драйвера инфраструктуры виртуализации уже инициализирован. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET 0xC0370020 | Невозможно установить или сбросить свойство блока памяти несколько раз для драйвера инфраструктуры виртуализации. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_MMIO_RANGE_DESTROYED 0xC0370021 | Сопоставленный в памяти ввод-вывод для этого диапазона страниц больше не существует. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_INVALID_CHILD_GPA_PAGE_SET 0xC0370022 | В запросе на блокировку или разблокировку используется недопустимый адрес памяти гостевой операционной системы. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED 0xC0370023 | Невозможно уничтожить или повторно использовать резервный набор страниц для драйвера инфраструктуры виртуализации, так как он используется. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL 0xC0370024 | Набор страниц резервирования для драйвера инфраструктуры виртуализации слишком мал для использования в запросе на блокировку. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE 0xC0370025 | Не удается заблокировать или сопоставить страницу блока памяти для драйвера инфраструктуры виртуализации, так как она уже заблокирована с помощью резервной страницы набора страниц. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT 0xC0370026 | Не удается создать блок памяти для драйвера инфраструктуры виртуализации, так как запрошенное количество страниц превысило ограничение. Перезапуск виртуальной машины может устранить проблему. Если проблема не исчезнет, попробуйте перезагрузить физический компьютер. |
| ERROR_VID_SAVED_STATE_CORRUPT 0xC0370027 | Не удается восстановить эту виртуальную машину, так как сохраненные данные состояния не могут быть прочитаны. Удалите сохраненные данные о состоянии, а затем попробуйте запустить виртуальную машину. |
| ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM 0xC0370028 | Не удается восстановить эту виртуальную машину, так как элемент, считанный из сохраненных данных состояния, не распознан. Удалите сохраненные данные о состоянии, а затем попробуйте запустить виртуальную машину. |
| ERROR_VID_SAVED_STATE_INCOMPATIBLE 0xC0370029 | Не удается восстановить эту виртуальную машину в сохраненном состоянии из-за несовместимости гипервизора. Удалите сохраненные данные о состоянии, а затем попробуйте запустить виртуальную машину. |
| ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED 0x80370001 | Виртуальная машина работает с памятью, выделенной на нескольких узлах NUMA. Это не означает проблемы, если производительность виртуальной машины не будет необычно низкой. При возникновении проблем с производительностью может потребоваться изменить конфигурацию NUMA. |
Требования
| Требование | Значение |
|---|---|
| Заголовок | Winerror.h |