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


OID_PM_ADD_WOL_PATTERN

В качестве набора драйверы протокола NDIS используют OID_PM_ADD_WOL_PATTERN OID для добавления шаблона пробуждения по локальной сети управления питанием в сетевой адаптер. Элемент 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 содержит идентификатор шаблона ULONG WOL отклоненного шаблона 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 (include 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