структура NDIS_PM_CAPABILITIES (ntddndis.h)

Структура NDIS_PM_CAPABILITIES определяет возможности управления питанием сетевого адаптера.

Синтаксис

typedef struct _NDIS_PM_CAPABILITIES {
  NDIS_OBJECT_HEADER      Header;
  ULONG                   Flags;
  ULONG                   SupportedWoLPacketPatterns;
  ULONG                   NumTotalWoLPatterns;
  ULONG                   MaxWoLPatternSize;
  ULONG                   MaxWoLPatternOffset;
  ULONG                   MaxWoLPacketSaveBuffer;
  ULONG                   SupportedProtocolOffloads;
  ULONG                   NumArpOffloadIPv4Addresses;
  ULONG                   NumNSOffloadIPv6Addresses;
  NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
  NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
  NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
  ULONG                   SupportedWakeUpEvents;
  ULONG                   MediaSpecificWakeUpEvents;
} NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES;

Члены

Header

Тип, редакция и размер структуры NDIS_PM_CAPABILITIES . Этот элемент отформатирован как структура NDIS_OBJECT_HEADER .

Драйвер мини-порта должен задать для элемента Typeзаголовка значение NDIS_OBJECT_TYPE_DEFAULT. Чтобы указать версию структуры NDIS_PM_CAPABILITIES , драйвер должен задать для элемента Revisionзаголовка следующее значение:

NDIS_PM_CAPABILITIES_REVISION_2

Добавлены различные изменения для NDIS 6.30.

Задайте для элемента Размер значение NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2.

NDIS_PM_CAPABILITIES_REVISION_1

Исходная версия для NDIS 6.20.

Задайте для элемента Размер значение NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1.

Flags

Значение ULONG , содержащее побитовое ИЛИ флагов. Для NDIS 6.20 этот элемент зарезервирован для NDIS.

Начиная с версии NDIS 6.30, определены следующие флаги:

NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED

Если этот флаг установлен, сетевой адаптер должен иметь возможность сохранить полученный пакет, который привел к созданию события пробуждения адаптера.

Если этот флаг установлен, драйвер мини-порта должен иметь возможность выполнять следующие действия с этим пакетом после перехода сетевого адаптера в состояние полной мощности:

  • Драйвер мини-порта должен иметь возможность указать пакет, вызвав NdisMIndicateReceiveNetBufferLists.
  • Драйвер мини-порта должен иметь возможность выдать NDIS_STATUS_PM_WAKE_REASON указание состояния и передать пакет с указанием.
Дополнительные сведения об этой возможности управления питанием см. в разделе Индикаторы состояния причины пробуждения NDIS.

NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED

Если этот флаг установлен, драйвер мини-порта поддерживает выборочную приостановку NDIS для сетевых адаптеров.

Дополнительные сведения об этой возможности управления питанием см. в разделе Выборочная приостановка NDIS.

SupportedWoLPacketPatterns

Значение ULONG, содержащее побитовое ИЛИ флагов, задающих шаблоны пробуждения по локальной сети (WOL), поддерживаемые сетевым адаптером. Драйверы минипорта используют эти флаги для объявления шаблонов WOL на основе пакетов, поддерживаемых сетевым адаптером.

Дополнительные сведения об этом участнике см. в разделе Примечания. Дополнительные сведения о шаблонах WOL см. в разделе NDIS_PM_WOL_PATTERN.

NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED

Сетевой адаптер может создать событие пробуждения при получении пакета, соответствующего настроенной схеме растрового изображения.

NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED

Сетевой адаптер может создать событие пробуждения при получении магического пакета WOL. Магический пакет содержит в своих полезных данных строку из шести байтов со значением 0xFF, за которой сразу же следуют 16 смежных копий ethernet-адреса принимающего сетевого адаптера.

NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED

Сетевой адаптер может создать событие пробуждения при получении пакета IPv4 TCP SYN. Удаленные узлы отправляют пакеты TCP SYN для инициации TCP-подключения к локальному компьютеру.

NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED

Сетевой адаптер может создать событие пробуждения при получении пакета IPv6 TCP SYN.

NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED

Если этот флаг установлен, сетевой адаптер поддерживает в качестве подстановочных знаков любые значения, заполненные с нуля или не указанные, для IPv4-адресов и портов TCP/UDP в шаблоне WOL. Таким образом, значение подстановочного знака соответствует любому IPv4-адресу и любому значению порта входящего пакета в расположении, указанном в шаблоне WOL.

Если сетевой адаптер поддерживает шаблон пробуждения на основе IPv4 по локальной сети, например шаблон IPv4 TCP SYN, он должен поддерживать создание события пробуждения, если IPv4-адреса и значения портов входящего пакета совпадают с указанными в шаблоне пробуждения.

Однако если установлен флаг NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED, сетевой адаптер также может создать событие пробуждения, если выполняются следующие условия соответствия шаблона:

  • Любое значение из входящего пакета в расположении, указанном шаблоном WOL, совпадает, если шаблон WOL для этого расположения содержит значение с подстановочным знаком.
  • Значение из входящего пакета в расположении, заданном шаблоном WOL, совпадает, если шаблон WOL для этого расположения содержит ненулевое значение, равное значению пакета.
Драйвер мини-порта должен ограничить события пробуждения указанными IPv4-адресами и портами, если только драйвер не включает эту возможность.
Примечание Значения с подстановочными знаками, включенные этим флагом, могут включать неуказаемые исходные и целевые адреса IPv4, а также не указанные порты источника и назначения.
 

NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED

Если этот флаг установлен, сетевой адаптер поддерживает в качестве подстановочных знаков любые значения, заполненные нулевыми или неопределенными, для IPv6-адресов и портов TCP/UDP в шаблоне WOL. Таким образом, значение подстановочного знака соответствует любому IPv6-адресу и любому значению порта входящего пакета в расположении, указанном в шаблоне WOL.

Если сетевой адаптер поддерживает шаблон пробуждения на основе IPv6 по локальной сети, например шаблон IPv6 TCP SYN, он должен поддерживать создание события пробуждения, если IPv6-адреса и значения портов входящего пакета совпадают с адресами, указанными в шаблоне пробуждения.

Однако если установлен флаг NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED, сетевой адаптер также может создать событие пробуждения, если выполняются следующие условия соответствия шаблону:

  • Любое значение из входящего пакета в расположении, указанном шаблоном WOL, совпадает, если шаблон WOL для этого расположения содержит значение с подстановочным знаком.
  • Значение из входящего пакета в расположении, заданном шаблоном WOL, совпадает, если шаблон WOL для этого расположения содержит ненулевое значение, равное значению пакета.
Драйвер мини-порта должен ограничить события пробуждения указанными IPv6-адресами и портами, если только драйвер не включает эту возможность.
Примечание Значения с подстановочными знаками, включенные этим флагом, могут включать неуказаемые исходные и конечные адреса IPv6, а также не указанные порты источника и назначения.
 

NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED

Сетевой адаптер может создать событие пробуждения при получении сообщения идентификатора запроса EAPOL.

NumTotalWoLPatterns

Значение ULONG , содержащее общее количество шаблонов WOL, поддерживаемых сетевым адаптером. Это сумма значений "количество поддерживаемых шаблонов протокола WOL" и "количество поддерживаемых шаблонов точечных изображений WOL".

Например, если драйвер поддерживает 8 гибких шаблонов растровых изображений, IPv4 TCP SYN (с помощью предустановленного фильтра) и магический пакет, то вы будете сообщать 9 в NumTotalWoLPatterns. (8 точечных изображений + 1 IPv4 TCP SYN = 9)

Примечание Общее число шаблонов WOL не включает шаблон пробуждения волшебных пакетов.
 
Дополнительные сведения о шаблонах протокола WOL см. в разделе NDIS_PM_WOL_PATTERN.

MaxWoLPatternSize

Значение ULONG, содержащее максимальное количество байтов, которое можно сравнить с шаблоном.

MaxWoLPatternOffset

Значение ULONG, содержащее количество байтов в пакете, который можно проверить, начиная с начала заголовка MAC.

MaxWoLPacketSaveBuffer

Значение ULONG, содержащее количество байтов пакета WOL, которое драйвер мини-порта может сохранить в буфере и указать на стек драйверов. Это значение должно быть меньше или равно размеру (в байтах) максимальной единицы передачи (MTU) сетевого носителя. Драйвер сообщает размер MTU с помощью запросов OID OID_GEN_MAXIMUM_FRAME_SIZE.

Примечание Этот элемент игнорируется в NDIS 6.20 и более ранних версиях NDIS. Начиная с версии NDIS 6.30, этот элемент должен содержать ненулевое значение, если флаг NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED установлен в элементе Flags .
 

SupportedProtocolOffloads

Значение ULONG , содержащее побитовое ИЛИ флагов, задающих функции разгрузки протокола, поддерживаемые сетевым адаптером. Драйверы минипорта используют эти флаги для сообщения о возможностях разгрузки протокола низкого энергопотребления сетевого адаптера.

NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED

Если этот бит задан, сетевой адаптер может реагировать на пакеты ARP IPv4, пока он находится в низком энергопотреблении.

Дополнительные сведения о протоколе ARP см. в статье RFC 826.

NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED

Если этот бит задан, сетевой адаптер может отвечать на пакеты запроса IPv6 соседей (NS), пока он находится в низком энергопотреблении.

Дополнительные сведения о сообщениях NS IPv6 см. в статье RFC 4861.

NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED

Сетевой адаптер может отвечать на запросы повторного ключа СЕТИ безопасности IEEE 802.11i, когда он находится в низком энергопотреблении.

NumArpOffloadIPv4Addresses

Значение ULONG , содержащее количество IPv4-адресов, поддерживаемых адаптером для разгрузки ARP.

NumNSOffloadIPv6Addresses

Значение ULONG , содержащее количество запросов на разгрузку IPv6 NS, поддерживаемых адаптером. Значение должно быть не менее 2.

Примечание Несмотря на свое имя, NumNSOffloadIPv6Addresses содержит количество поддерживаемых запросов, а не адресов.
 

MinMagicPacketWakeUp

Указывает наименьшее состояние питания устройства, из которого сетевой адаптер может сигнализировать о событии пробуждения при получении магического пакета. Магический пакет содержит в своих полезных данных строку из шести байтов со значением 0xFF, а затем сразу 16 смежных копий MAC-адреса принимающего сетевого адаптера.

Примечание Состояния питания устройства задаются значением Dx, где D0 — это наибольшее состояние питания устройства, а D3 — наименьшее состояние питания устройства.
 
Состояние питания устройства указывается как одно из следующих NDIS_DEVICE_POWER_STATE значений:

NdisDeviceStateUnspecified

Сетевой адаптер не поддерживает пробуждение магических пакетов.

Примечание Если для элемента MinMagicPacketWakeUp задано это значение, флаг NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED не должен быть установлен в элементе SupportedWoLPacketPatterns .
 

NdisDeviceStateD0

Сетевой адаптер может сигнализировать о пробуждении магического пакета из состояния питания устройства D0. Так как D0 является состоянием с полным питанием, это не вызывает пробуждения, но может использоваться в качестве события среды выполнения.

Примечание Начиная с NDIS 6.20, сигнализировать о пробуждении магического пакета из NdisDeviceStateD0 больше не поддерживается.
 

NdisDeviceStateD1

Сетевой адаптер может сигнализировать о пробуждении волшебного пакета из состояния питания устройства D1.

NdisDeviceStateD2

Сетевой адаптер может сигнализировать о пробуждении волшебного пакета из состояния устройства D2.

NdisDeviceStateD3

Сетевой адаптер может сигнализировать о пробуждении волшебного пакета из состояния питания устройства D3.

MinPatternWakeUp

Указывает наименьшее состояние питания устройства, из которого сетевой адаптер может сигнализировать о событии пробуждения при получении сетевого кадра, содержащего шаблон, заданный драйвером протокола. Состояние питания указывается как одно из следующих NDIS_DEVICE_POWER_STATE значений:

NdisDeviceStateUnspecified

Сетевой адаптер не поддерживает пробуждения с сопоставлением шаблонов.

Примечание Если для элемента MinPatternWakeUp задано это значение, в элементе SupportedWoLPacketPatterns можно задать только флаг NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED.
 

NdisDeviceStateD0

Сетевой адаптер может сигнализировать о выходе из состояния питания устройства D0. Так как D0 является состоянием с полным питанием, это не вызывает пробуждения, но может использоваться в качестве события времени выполнения.

Примечание Начиная с NDIS 6.20, сигнализировать о пробуждении соответствия шаблонов из NdisDeviceStateD0 больше не поддерживается.
 

NdisDeviceStateD1

Сетевой адаптер может сигнализировать о пробуждении соответствия шаблону из состояния питания устройства D1.

NdisDeviceStateD2

Сетевой адаптер может сигнализировать о пробуждении соответствия шаблону из состояния питания устройства D2.

NdisDeviceStateD3

Сетевой адаптер может сигнализировать о пробуждении соответствия шаблону из состояния питания устройства D3.

MinLinkChangeWakeUp

Начиная с версии NDIS 6.20, этот элемент определяет наименьшее состояние питания устройства, из которого сетевой адаптер может сигнализировать о событии пробуждения при изменении состояния связи с отключенного носителя на подключенный носитель.

Начиная с версии NDIS 6.30, этот элемент определяет наименьшее состояние питания устройства, из которого сетевой адаптер может сигнализировать о событиях пробуждения. Эти события указываются в элементе SupportedWakeUpEvents .

Состояние питания указывается как одно из следующих NDIS_DEVICE_POWER_STATE значений:

NdisDeviceStateUnspecified

Сетевой адаптер не поддерживает пробуждения при изменении связи.

Примечание Если для элемента MinLinkChangeWakeUp задано это значение, то элементSupportedWakeUpEvents должен иметь нулевое значение.
 

NdisDeviceStateD0

Сетевой адаптер может сигнализировать об изменении канала пробуждения из состояния питания устройства D0. Так как D0 является состоянием с полным питанием, это не вызывает пробуждения, но может использоваться в качестве события времени выполнения.

Примечание Начиная с NDIS 6.20, сигнализировать о пробуждении изменения связи из NdisDeviceStateD0 больше не поддерживается.
 

NdisDeviceStateD1

Сетевой адаптер может сигнализировать о пробуждении изменения канала из состояния питания устройства D1.

NdisDeviceStateD2

Сетевой адаптер может сигнализировать о пробуждении изменения связи из состояния питания устройства D2.

NdisDeviceStateD3

Сетевой адаптер может сигнализировать об изменении канала пробуждения из состояния питания устройства D3.

SupportedWakeUpEvents

Значение ULONG , содержащее побитовое ИЛИ флагов. Эти флаги указывают независимые от мультимедиа события пробуждения, поддерживаемые сетевым адаптером. Эти события не относятся к типу мультимедиа.

Начиная с NDIS 6.30, определены следующие флаги:

NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED

Если этот флаг установлен, сетевой адаптер может создать событие пробуждения при подключении к сетевому интерфейсу.

NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED

Если этот флаг установлен, сетевой адаптер может создать событие пробуждения при отключении к сетевому интерфейсу.

MediaSpecificWakeUpEvents

Значение ULONG , содержащее побитовое ИЛИ флагов. Эти флаги указывают события пробуждения для конкретного носителя, поддерживаемые сетевым адаптером.

Начиная с NDIS 6.30, определены следующие флаги:

NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED

Если этот флаг установлен, сетевой адаптер 802.11 может создать событие пробуждения при обнаружении идентификатора набора служб (SSID), указанного через разгрузку списка сети (NLO).

Дополнительные сведения о NLO см. в разделе Разгрузка списка сетей Wi-Fi.

NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED

Если этот флаг установлен, сетевой адаптер 802.11 может создать событие пробуждения, если он не связан с точкой доступа (AP).

NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED

Если этот флаг установлен, сетевой адаптер 802.11 может создать событие пробуждения, если он столкнется с ошибкой во время подтверждения временной клавиши ГРУППЫ RSN IEEE 802.11i (GTK) с AP.

NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED

Если этот флаг установлен, сетевой адаптер 802.11 может создать событие пробуждения, если он получает первый кадр подтверждения IEEE 802.11i RSN 4-way с AP. Это подтверждение выполняется, когда адаптер проходит проверку подлинности с помощью AP.

NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED

Если этот флаг установлен, сетевой адаптер мобильной широкополосной связи (МБ) может создать событие пробуждения, если его состояние регистрации в службе MB изменилось.

NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED

Если этот флаг установлен, сетевой адаптер MB может создать событие пробуждения, если служба MB должна быть уведомлена о получении sms-сообщения. Адаптер создает это событие пробуждения либо после завершения ранее выданного запроса OID_WWAN_SMS_READ запроса, либо после получения нового сообщения класса 0 (flash/alert) от поставщика сети в качестве уведомления о событии.

NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED

Если этот флаг установлен, сетевой адаптер MB может создать событие пробуждения при получении сообщения USSD неструктурированных дополнительных данных службы ( USSD).

Комментарии

Структура NDIS_PM_CAPABILITIES используется в элементе PowerManagementCapabilitiesEx NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES и NDIS_BIND_PARAMETERS структур и в NDIS_STATUS_PM_CAPABILITIES_CHANGE указание состояния.

Во время инициализации мини-порта драйвер мини-порта инициализирует структуру NDIS_PM_CAPABILITIES с помощью возможностей управления питанием оборудования сетевого адаптера. Затем драйвер мини-порта задает элемент PowerManagementCapabilitiesEx структуры NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES, чтобы указать на инициализированную структуру NDIS_PM_CAPABILITIES .

Не следует пытаться включить возможности, которые не поддерживаются сетевым адаптером. Чтобы позволить слишком сильному драйверу определить, какие возможности предоставляет сетевой адаптер, NDIS предоставляет возможности в элементе PowerManagementCapabilitiesEx структуры NDIS_BIND_PARAMETERS.

Примечание Драйверы NDIS 6.20 должны использовать элемент PowerManagementCapabilitiesEx вместо элемента PowerManagementCapabilities .
 
Член SupportedProtocolOffloads содержит флаги, указывающие функции разгрузки протокола, поддерживаемые сетевым адаптером. Сетевой адаптер обрабатывает эти протоколы в низком энергопотреблении. Например, если оборудование сетевого адаптера может обрабатывать пакеты ARP IPv4 для стека драйверов, находясь в состоянии низкого энергопотребления, драйвер мини-порта задает бит NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED в SupportedProtocolOffloads.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.20 и более поздних версиях.
Верхняя часть ntddndis.h (включая Ntddndis.h)

См. также раздел

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_PM_WOL_PATTERN

NDIS_STATUS_PM_CAPABILITIES_CHANGE

NDIS_STATUS_PM_WAKE_REASON

NdisMIndicateReceiveNetBufferLists

NdisMIndicateStatusEx