структура 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) |