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

Структура NDIS_PM_WOL_PATTERN определяет шаблон пробуждения по локальной сети (WOL).

Синтаксис

typedef struct _NDIS_PM_WOL_PATTERN {
  NDIS_OBJECT_HEADER     Header;
  ULONG                  Flags;
  ULONG                  Priority;
  NDIS_PM_WOL_PACKET     WoLPacketType;
  NDIS_PM_COUNTED_STRING FriendlyName;
  ULONG                  PatternId;
  ULONG                  NextWoLPatternOffset;
  union {
    struct {
      ULONG  Flags;
      UCHAR  IPv4SourceAddress[4];
      UCHAR  IPv4DestAddress[4];
      USHORT TCPSourcePortNumber;
      USHORT TCPDestPortNumber;
    } IPv4TcpSynParameters;
    struct {
      ULONG  Flags;
      UCHAR  IPv6SourceAddress[16];
      UCHAR  IPv6DestAddress[16];
      USHORT TCPSourcePortNumber;
      USHORT TCPDestPortNumber;
    } IPv6TcpSynParameters;
    struct {
      ULONG Flags;
    } EapolRequestIdMessageParameters;
    struct {
      ULONG Flags;
      ULONG MaskOffset;
      ULONG MaskSize;
      ULONG PatternOffset;
      ULONG PatternSize;
    } WoLBitMapPattern;
  } WoLPattern;
  _WOL_PATTERN           _WOL_PATTERN;
} NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN;

Члены

Header

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

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

NDIS_PM_WOL_PATTERN_REVISION_2

Изменения перечисления NDIS_PM_WOL_PACKET для NDIS 6.30.

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

NDIS_PM_WOL_PATTERN_REVISION_1

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

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

Flags

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

Priority

Значение ULONG, содержащее приоритет шаблона WOL. Если слишком высокий драйвер добавляет шаблон WOL с более высоким приоритетом, когда нет ресурсов, доступных для дополнительных шаблонов WOL, NDIS может удалить шаблон WOL с более низким приоритетом для освобождения ресурсов. Драйверы мини-порта должны игнорировать этот элемент. Драйвер протокола может указать любой приоритет, который находится в предопределенном диапазоне. Следующие значения являются предопределенными:

NDIS_PM_WOL_PRIORITY_LOWEST

Задает шаблон WOL с наименьшим приоритетом.

NDIS_PM_WOL_PRIORITY_NORMAL

Задает шаблон WOL с обычным приоритетом.

NDIS_PM_WOL_PRIORITY_HIGHEST

Задает шаблон WOL с наивысшим приоритетом.

WoLPacketType

Значение перечисления NDIS_PM_WOL_PACKET , указывающее тип пакета WOL.

FriendlyName

Структура NDIS_PM_COUNTED_STRING , содержащая доступное пользователю описание пакета WOL.

PatternId

Значение ULONG, содержащее предоставленное NDIS-значение, идентифицирующее шаблон WOL. Прежде чем NDIS отправит запрос OID_PM_ADD_WOL_PATTERN OID к базовым драйверам NDIS или завершит запрос к вышележащее драйверу, NDIS присваивает PatternId значение, которое является уникальным среди шаблонов WOL в сетевом адаптере.

NextWoLPatternOffset

Значение ULONG, содержащее смещение в байтах. Для элемента NextWoLPatternOffset каждой структуры NDIS_PM_WOL_PATTERN в списке устанавливается смещение (от начала запроса OID InformationBuffer) следующей структуры NDIS_PM_WOL_PATTERN в списке. Если параметр NextWoLPatternOffset равен нулю, текущая структура является последней структурой в списке.

WoLPattern

Объединение, содержащее следующие структуры элементов.

WoLPattern.IPv4TcpSynParameters

Структура, содержащая сведения О SYN для ПРОТОКОЛА TCP по протоколу IPv4. Эта структура содержит следующие элементы:

WoLPattern.IPv4TcpSynParameters.Flags

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

WoLPattern.IPv4TcpSynParameters.IPv4SourceAddress[4]

Исходный адрес IPv4 в пакете TCP SYN.

WoLPattern.IPv4TcpSynParameters.IPv4DestAddress[4]

Адрес назначения IPv4 в пакете TCP SYN.

WoLPattern.IPv4TcpSynParameters.TCPSourcePortNumber

Номер порта источника TCP в пакете TCP SYN.

WoLPattern.IPv4TcpSynParameters.TCPDestPortNumber

Номер порта назначения TCP в пакете TCP SYN.

WoLPattern.IPv6TcpSynParameters

Структура, содержащая сведения О SYN TCP для протокола IPv6. Эта структура содержит следующие элементы:

WoLPattern.IPv6TcpSynParameters.Flags

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

WoLPattern.IPv6TcpSynParameters.IPv6SourceAddress[16]

Исходный адрес IPv6 в пакете TCP SYN.

WoLPattern.IPv6TcpSynParameters.IPv6DestAddress[16]

Адрес назначения IPv6 в пакете TCP SYN.

WoLPattern.IPv6TcpSynParameters.TCPSourcePortNumber

Порт источника TCP в пакете TCP SYN.

WoLPattern.IPv6TcpSynParameters.TCPDestPortNumber

Порт назначения TCP в пакете TCP SYN.

WoLPattern.EapolRequestIdMessageParameters

Структура, содержащая параметры удостоверений запроса EAPOL 802.1X. Эта структура содержит следующие элементы:

WoLPattern.EapolRequestIdMessageParameters.Flags

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

WoLPattern.WoLBitMapPattern

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

WoLPattern.WoLBitMapPattern.Flags

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

WoLPattern.WoLBitMapPattern.MaskOffset

Смещение (в байтах) для буфера маски от начала структуры NDIS_PM_WOL_PATTERN.

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

WoLPattern.WoLBitMapPattern.MaskSize

Размер маски (в байтах).

WoLPattern.WoLBitMapPattern.PatternOffset

Смещение (в байтах) для буфера шаблона от начала структуры NDIS_PM_WOL_PATTERN.

WoLPattern.WoLBitMapPattern.PatternSize

Размер шаблона (в байтах).

_WOL_PATTERN

Комментарии

Структура NDIS_PM_WOL_PATTERN используется в запросах OID_PM_ADD_WOL_PATTERN и OID_PM_WOL_PATTERN_LIST OID.

Драйвер верхнего уровня может указать универсальный шаблон WOL с помощью члена WoLBitMapPattern . Точечный рисунок указывается в виде последовательности байтов и растрового изображения маски. Каждый бит в маске соответствует байту в шаблоне и указывает, должен ли соответствующий байт во входящем пакете сопоставляться с соответствующим байтом в шаблоне. Если все байты, сравниваемые сетевым адаптером, совпадают, пакет является совпадением, и сетевой адаптер должен создать событие пробуждения.

Драйвер верхнего уровня может указать заполненные с нуля или не указанные значения IPv4-адреса и TCP-порта в структуре-члене IPv4TcpSynParameters . Если флаг NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED установлен в элементе EnabledWoLPacketPatterns NDIS_PM_PARAMETERS, сетевой адаптер должен использовать неуказаемый адрес или значение порта, чтобы сопоставить любой исходный или целевой IPv4-адрес или значение TCP-порта в пакете SYN IPv4.

Аналогичным образом драйвер верхнего уровня может указать неопределенные значения IPv6-адреса и TCP-порта в структуре-члене IPv6TcpSynParameters . Если флаг NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED установлен в элементе EnabledWoLPacketPatterns NDIS_PM_PARAMETERS, сетевой адаптер должен использовать неуказаемый адрес или значение порта, чтобы сопоставить любой исходный или целевой IPv6-адрес или значение TCP-порта в пакете IPv4 TCP SYN.

Драйвер верхнего уровня устанавливает флаги NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED и NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED, отправляя запрос на набор OID_PM_PARAMETERS OID.

Требования

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

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

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_WOL_PACKET

OID_PM_ADD_WOL_PATTERN

OID_PM_WOL_PATTERN_LIST