Поделиться через


OID_PM_ADD_WOL_PATTERN

В качестве набора драйверы протокола NDIS используют OID OID_PM_ADD_WOL_PATTERN для добавления шаблона пробуждения по локальной сети управления питанием к сетевому адаптеру. Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_PM_WOL_PATTERN .

Комментарии

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

Драйвер протокола может добавлять шаблоны WOL после успешной привязки к базовому сетевому адаптеру и сразу после получения необходимых данных (например, IP-адреса интерфейса) для настройки шаблона WOL. Драйвер протокола также может добавить шаблон WOL в ответ на некоторые другие уведомления о событиях управления питанием, такие как отклонение ранее добавленного шаблона WOL или разгрузки протокола.

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

Прежде чем NDIS отправит этот запрос OID к базовым драйверам NDIS или завершит запрос к вышележащим драйверам, он устанавливает для элемента ULONG PatternId структуры NDIS_PM_WOL_PATTERN уникальное значение. Драйверы протокола и NDIS используют этот идентификатор шаблона с запросом OID_PM_REMOVE_WOL_PATTERN OID, чтобы удалить шаблон WOL из базового сетевого адаптера.

Примечание Идентификатор шаблона — это уникальное значение для каждого из шаблонов, заданных в сетевом адаптере. Однако идентификатор шаблона не является глобально уникальным для всех адаптеров минипорта.

Если NDIS или базовый сетевой адаптер удаляет шаблон WOL, он создает NDIS_STATUS_PM_WOL_PATTERN_REJECTED указание состояния. Элемент StatusBuffer структуры NDIS_STATUS_INDICATION содержит идентификатор шаблона WOL ULONG отклоненного шаблона WOL.

Драйвер мини-порта возвращает один из следующих кодов состояния для запроса:

NDIS_STATUS_SUCCESS
Запрошенный шаблон успешно добавлен. Элемент PatternId структуры NDIS_PM_WOL_PATTERN содержит идентификатор шаблона.

NDIS_STATUS_PENDING
Запрос ожидает завершения. NDIS передает окончательный код состояния и результаты обработчику завершения запроса OID вызывающего объекта после завершения запроса.

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

NDIS_STATUS_RESOURCES
NDIS или базовый сетевой адаптер не удалось добавить новый шаблон из-за нехватки ресурсов.

NDIS_STATUS_INVALID_PARAMETER
Один или несколько параметров в структуре NDIS_PM_WOL_PATTERN были недопустимыми.

NDIS_STATUS_BUFFER_TOO_SHORT
Буфер сведений был слишком коротким. NDIS задает значение DATA. SET_INFORMATION. Элемент BytesNeeded в NDIS_OID_REQUEST структуру до минимального необходимого размера буфера.

NDIS_STATUS_NOT_SUPPORTED
Сетевой адаптер не поддерживает запрошенный шаблон WOL.

NDIS_STATUS_FAILURE
Сбой запроса по причинам, не указанным выше.

Требования

Версия

Поддерживается в NDIS 6.20 и более поздних версиях. Обязательно для водителей минипорта.

Заголовок

Ntddndis.h (включая Ndis.h)

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

NDIS_OID_REQUEST

NDIS_PM_WOL_PATTERN

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_WOL_PATTERN_REJECTED

OID_PM_REMOVE_WOL_PATTERN

OID_PNP_ADD_WAKE_UP_PATTERN