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


OID_PM_ADD_PROTOCOL_OFFLOAD

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

Комментарии

Драйверы протоколов NDIS 6.20 и более поздних версий используют OID_PM_ADD_PROTOCOL_OFFLOAD OID для добавления разгрузки протокола для управления питанием в сетевой адаптер. При успешном выполнении запроса сетевой адаптер должен создать и передать необходимые пакеты ответа для протокола разгрузки, когда сетевой адаптер находится в состоянии низкого энергопотребления.

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

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

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

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

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

Сведения о том, как драйвер 802.11 wireless LAN miniport использует этот OID, см. в разделе Добавление и удаление разгрузки протокола с низким энергопотреблением.

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

NDIS_STATUS_SUCCESS
Запрошенная разгрузка протокола успешно добавлена. Элемент ProtocolOffloadId структуры NDIS_PM_PROTOCOL_OFFLOAD содержит идентификатор разгрузки протокола.

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

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

NDIS_STATUS_RESOURCES
NDIS или базовому сетевому адаптеру не удалось добавить новую разгрузку протокола из-за нехватки ресурсов.

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

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

NDIS_STATUS_NOT_SUPPORTED
Сетевой адаптер не поддерживает запрошенную разгрузку протокола.

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

Требования

Версия

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

Заголовок

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

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

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

Добавление и удаление разгрузки протокола с низким энергопотреблением