OID_OFFLOAD_ENCAPSULATION
В качестве запроса драйверы, переопределяющие драйверы используют OID_OFFLOAD_ENCAPSULATION OID для получения текущих параметров инкапсуляции текущей задачи базового мини-адаптера. NDIS обрабатывает этот запрос OID для драйверов мини-порта.
В качестве запроса набора драйверы используют OID_OFFLOAD_ENCAPSULATION OID для задания параметров инкапсуляции задачи базового минипорта. Минипорт-драйверы, поддерживающие разгрузку задачи, должны обрабатывать этот запрос набора OID.
Замечания
Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит NDIS_OFFLOAD_ENCAPSULATION структуру.
Минипорт драйверы
Если мини-драйвер не поддерживает разгрузку и этот OID, драйвер должен вернуть NDIS_STATUS_NOT_SUPPORTED.
Драйверы минипорта должны использовать содержимое структуры NDIS_OFFLOAD_ENCAPSULATION для обновления доступных в настоящее время возможностей разгрузки TCP. После обновления мини-драйвер должен сообщить о возможностях разгрузки текущей задачи с указанием состояния NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG. Это указание состояния гарантирует, что все драйверы протоколов чрезмерного уровня обновляются с новыми сведениями о возможностях.
Этот OID используется для активации всех настроенных или включенных разгрузки или деактивации всех отключений (иными словами, оборудование начинает выполнять разгрузки). Он не обеспечивает точного контроля над отдельными разгрузками. Вместо этого OID_TCP_OFFLOAD_PARAMETERS используется для настройки отдельных отключений и их активации. Как правило, большинство отключений задач TCP/IP можно настроить и активировать с помощью OID_TCP_OFFLOAD_PARAMETERS.
Однако структура NDIS_OFFLOAD_ENCAPSULATION OID также охватывает два других типа инкапсуляции, которые не охватываются NDIS_OFFLOAD_PARAMETERS структуры OID_TCP_OFFLOAD_PARAMETERS: NDIS_ENCAPSULATION_IEEE_802_3 и NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED. Минипорт-драйверы должны обрабатывать эту разницу в типах инкапсуляции, охватываемых различными идентификаторами OID.
Если этот OID выдан драйвером протокола, чтобы отключить все разгрузки, включено член NDIS_OFFLOAD_ENCAPSULATION будет иметь значение NDIS_OFFLOAD_SET_OFF.
Установка инкапсуляции (драйверы протокола)
Драйверы протокола задают OID_OFFLOAD_ENCAPSULATION после определения требований к инкапсулированию системы. Драйвер протокола может определить возможности базового мини-адаптера из структуры NDIS_BIND_PARAMETERS или запроса OID_TCP_OFFLOAD_CURRENT_CONFIG. Драйвер протокола должен задать тип инкапсуляции, который мини-адаптер поддерживает по крайней мере в одной службе разгрузки.
Если минипорт-драйвер поддерживает любой тип разгрузки, поддерживающий запрошенный тип инкапсуляции, драйвер должен вернуть NDIS_STATUS_SUCCESS в ответ на набор OID_OFFLOAD_ENCAPSULATION. В противном случае драйвер минипорта должен возвращать NDIS_STATUS_INVALID_PARAMETER.
Для операций отправки драйвер протокола может выдавать запросы на отправку, используя только те типы разгрузки, которые адаптер минипорта поддерживает с необходимым типом инкапсуляции. Таким образом, если запрос набора OID OID_OFFLOAD_ENCAPSULATION завершается ошибкой, драйвер протокола не должен использовать параметры разгрузки в запросах отправки, направленных на этот мини-адаптер.
Для операций получения мини-порт драйвер не должен запускать контрольную сумму или службы безопасности протокола Интернета (IPsec) до тех пор, пока он не получит запрос набора OID OID_OFFLOAD_ENCAPSULATION.
Получение текущих параметров инкапсуляции (драйверы протокола)
Драйвер протокола может выдавать запрос OID_OFFLOAD_ENCAPSULATION только после задания OID_OFFLOAD_ENCAPSULATION OID.
NDIS отвечает на NDIS_OFFLOAD_ENCAPSULATION структуру, содержащую текущие параметры инкапсуляции.
Драйверы протокола должны быть готовы к обработке любого кода сбоя NDIS_STATUS_Xxx. Если происходит сбой, драйвер протокола не должен пытаться выполнить какие-либо операции разгрузки, направленные на затронутый минипорт-адаптер.
См. также
NDIS_BIND_PARAMETERS
NDIS_OFFLOAD_ENCAPSULATION
NDIS_OID_REQUEST
NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG
OID_TCP_OFFLOAD_CURRENT_CONFIG
Требования
версии: Windows Vista и более поздних версий заголовка: Ntddndis.h (include Ndis.h)