Добавление и удаление шаблонов пробуждения по локальной сети
Чтобы добавить шаблон пробуждения по локальной сети (WOL), драйверы протокола NDIS выдают запрос на набор OID OID_PM_ADD_WOL_PATTERN. Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на NDIS_PM_WOL_PATTERN структуру. Драйверы протокола должны указывать пакет WOL, если этот пакет WOL поддерживается сетевым адаптером. Если сетевой адаптер не поддерживает пакет WOL, драйвер протокола должен использовать метод пробуждения растрового изображения WOL.
NDIS_PM_WOL_PATTERN содержит следующие сведения:
Приоритет
Содержит приоритет шаблона WOL. Если слишком высокий драйвер добавляет шаблон WOL с более высоким приоритетом при отсутствии ресурсов, доступных для дополнительных шаблонов WOL, NDIS может удалить шаблон WOL с более низким приоритетом для освобождения ресурсов. Драйверы мини-порта должны игнорировать этот элемент. Драйвер протокола может указать любой приоритет, который находится в предопределенном диапазоне от NDIS_PM_WOL_PRIORITY_LOWEST до NDIS_PM_WOL_PRIORITY_HIGHEST.
WoLPacketType
Содержит значение перечисления NDIS_PM_WOL_PACKET , указывающее тип пакета WOL.
Friendlyname
Содержит структуру NDIS_PM_COUNTED_STRING , содержащую доступное для пользователя описание пакета WOL.
PatternId
Содержит предоставленное NDIS-значение, идентифицирующее шаблон WOL. Прежде чем NDIS отправит запрос OID_PM_ADD_WOL_PATTERN OID к базовым драйверам NDIS или завершит запрос к вышележащее драйверу, NDIS присваивает PatternId значение, которое является уникальным среди шаблонов WOL в сетевом адаптере.
NextWoLPatternOffset
Содержит смещение (от начала запроса OID InformationBuffer) одной структуры NDIS_PM_WOL_PATTERN до следующей структуры NDIS_PM_WOL_PATTERN в списке для OID_PM_WOL_PATTERN_LIST OID. Дополнительные сведения о OID_PM_WOL_PATTERN_LIST см. в разделе Получение текущих параметров шаблонов WOL.
WoLPattern
Содержит одну из структур IPv4TcpSynParameters, IPv6TcpSynParameters, EapolRequestIdMessageParameters или WoLBitMapPattern в объединении.
IPv4TcpSynParameters
Содержит сведения о синхронизации TCP по протоколу IPv4 (SYN).
IPv6TcpSynParameters
Содержит сведения о ПРОТОКОЛе TCP ДЛЯ IPv6.
EapolRequestIdMessageParameters
Содержит параметры удостоверений запроса 802.1X EAP по локальной сети (EAPOL).
WoLBitMapPattern
Содержит спецификацию шаблона точечного изображения WOL.
NDIS назначает идентификатор, уникальный для сетевого адаптера, каждому шаблону WOL. Идентификатор шаблона — это уникальное значение для каждого из шаблонов, заданных в сетевом адаптере. Однако идентификатор шаблона не является глобально уникальным для всех сетевых адаптеров. NDIS передает идентификатор базовому сетевому адаптеру, когда NDIS отправляет OID-запрос OID_PM_ADD_WOL_PATTERN драйверу мини-порта. При успешном добавлении шаблона WOL NDIS возвращает идентификатор для драйвера, который добавил шаблон WOL. Драйвер overlying использует идентификатор для удаления ранее добавленного шаблона WOL. Идентификатор шаблона также используется в обозначениях состояния для драйверов, которые являются более слева, при удалении шаблона WOL из сетевого адаптера.
Драйверы протоколов должны выдавать запрос на набор OID OID_PM_REMOVE_WOL_PATTERN , чтобы удалить все шаблоны, добавленные в сетевой адаптер, прежде чем закрывать привязку к этому сетевому адаптеру. Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на идентификатор шаблона.
Приложения в пользовательском режиме используют guid WMI GUID_PM_REMOVE_WOL_PATTERN для удаления ранее добавленного шаблона WOL из сетевого адаптера. NDIS преобразует этот запрос WMI в запрос набора OID OID_PM_REMOVE_WOL_PATTERN для сетевого адаптера. NDIS удаляет все шаблоны WOL, добавленные приложением из сетевого адаптера, прежде чем остановить работу сетевого адаптера.
NDIS позволяет нескольким драйверам протокола NDIS добавлять шаблоны WOL в один и тот же сетевой адаптер. Чтобы убедиться, что правильный набор шаблонов WOL был задан, когда количество запрошенных шаблонов WOL превышает то, что может поддерживать сетевой адаптер, драйверы протоколов назначают приоритет каждому запрашиваемому шаблону WOL в элементе Приоритет структуры NDIS_PM_WOL_PATTERN. Если NDIS не удается добавить новый шаблон WOL с высоким приоритетом, так как у сетевого адаптера нет ресурсов, NDIS удаляет один из шаблонов с низким приоритетом (если таковой имеется) и пытается снова добавить шаблон с высоким приоритетом.
Примечание Драйвер мини-порта должен завершить запрос на добавление шаблона и вернуть код состояния STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL, чтобы позволить NDIS повторно расставить приоритеты шаблонов.
Если NDIS удаляет один из шаблонов с более низким приоритетом, он уведомляет вышестоящее драйвер, задающее удаленный шаблон, с указанием состояния NDIS_STATUS_PM_WOL_PATTERN_REJECTED . Элемент StatusBuffer структуры NDIS_STATUS_INDICATION содержит ULONG для идентификатора шаблона WOL отклоненного шаблона WOL. NDIS предоставил идентификатор шаблона WOL в элементе PatternId структуры NDIS_PM_WOL_PATTERN .
Для беспроводных сетевых адаптеров, которые могут использовать элемент инфраструктуры для разгрузки шаблонов при перемещении по инфраструктуре, новый элемент инфраструктуры может не поддерживать те же возможности, и драйвер мини-порта может отправить NDIS_STATUS_PM_WOL_PATTERN_REJECTED указание состояния с соответствующим кодом состояния.