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


OID_PM_ADD_PROTOCOL_OFFLOAD

В качестве набора драйверы протокола NDIS используют OID_PM_ADD_PROTOCOL_OFFLOAD OID для добавления разгрузки протокола для управления питанием в сетевой адаптер. Элемент 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 использует этот 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 (include Ndis.h)

См. также

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

Добавление и удаление отключений протокола низкой мощности