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


структура NDIS_PM_PROTOCOL_OFFLOAD (ntddndis.h)

Структура NDIS_PM_PROTOCOL_OFFLOAD задает параметры для разгрузки протокола с низким энергопотреблением в сетевой адаптер.

Синтаксис

typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
  NDIS_OBJECT_HEADER            Header;
  ULONG                         Flags;
  ULONG                         Priority;
  NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType;
  NDIS_PM_COUNTED_STRING        FriendlyName;
  ULONG                         ProtocolOffloadId;
  ULONG                         NextProtocolOffloadOffset;
  union {
    struct {
      ULONG Flags;
      UCHAR RemoteIPv4Address[4];
      UCHAR HostIPv4Address[4];
      UCHAR MacAddress[6];
    } IPv4ARPParameters;
    struct {
      ULONG Flags;
      UCHAR RemoteIPv6Address[16];
      UCHAR SolicitedNodeIPv6Address[16];
      UCHAR MacAddress[6];
      UCHAR TargetIPv6Addresses[2][16];
    } IPv6NSParameters;
    struct {
      ULONG     Flags;
      UCHAR     KCK[DOT11_RSN_KCK_LENGTH];
      UCHAR     KEK[DOT11_RSN_KEK_LENGTH];
      ULONGLONG KeyReplayCounter;
    } Dot11RSNRekeyParameters;
    struct {
      ULONG     Flags;
      ULONGLONG KeyReplayCounter;
      ULONG     AuthAlgo;
      ULONG     KCKLength;
      ULONG     KEKLength;
      UCHAR     KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
      UCHAR     KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
    } Dot11RSNRekeyParametersV2;
  } ProtocolOffloadParameters;
  _PROTOCOL_OFFLOAD_PARAMETERS  _PROTOCOL_OFFLOAD_PARAMETERS;
} NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;

Члены

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_PM_PROTOCOL_OFFLOAD . Драйвер задает для элемента Type значение NDIS_OBJECT_TYPE_DEFAULT.

Чтобы указать версию структуры NDIS_PM_PROTOCOL_OFFLOAD , задайте для элемента Редакциязаголовка одно из следующих значений:

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2

Добавлена структура Dot11RSNRekeyParametersV2 для NDIS 6.84.

Задайте для элемента Размер значение NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2.

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1

Исходная версия для NDIS 6.20 и более поздних версий.

Задайте для элемента Размер значение NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1.

Flags

Значение ULONG, содержащее побитовое ИЛИ флагов. Этот элемент зарезервирован для NDIS.

Priority

Значение ULONG, содержащее приоритет разгрузки протокола. Если драйвер с более высоким приоритетом добавляет разгрузку протокола с более высоким приоритетом при отсутствии ресурсов, доступных для дополнительной разгрузки протокола, NDIS может удалить разгрузку протокола с более низким приоритетом для освобождения ресурсов. Драйверы мини-порта должны игнорировать этот элемент. Драйверы протоколов могут предоставлять любое значение в пределах предопределенного диапазона. Следующие значения являются предопределенными:

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST

Задает разгрузку протокола с наименьшим приоритетом.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL

Задает обычную разгрузку протокола приоритета.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST

Задает разгрузку протокола с наивысшим приоритетом.

ProtocolOffloadType

Обычного NDIS_PM_PROTOCOL_OFFLOAD_TYPE значение, содержащее тип разгрузки протокола.

FriendlyName

Структура NDIS_PM_COUNTED_STRING , содержащая доступное для пользователя описание разгрузки протокола с низким энергопотреблением.

ProtocolOffloadId

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

NextProtocolOffloadOffset

Значение ULONG, содержащее смещение в байтах. Для элемента NextProtocolOffloadOffset каждой структуры NDIS_PM_PROTOCOL_OFFLOAD в списке задано смещение (от начала запроса OID InformationBuffer) следующей структуры NDIS_PM_PROTOCOL_OFFLOAD в списке. Если значение NextProtocolOffloadOffset равно нулю, текущая структура является последней структурой в списке.

ProtocolOffloadParameters

Объединение, содержащее следующие структуры элементов:

ProtocolOffloadParameters.IPv4ARPParameters

Структура, содержащая параметры ARP IPv4. Эта структура содержит следующие элементы:

ProtocolOffloadParameters.IPv4ARPParameters.Flags

Значение ULONG , содержащее побитовое ИЛИ флагов. Этот элемент зарезервирован для NDIS.

ProtocolOffloadParameters.IPv4ARPParameters.RemoteIPv4Address[4]

Массив UCHAR , содержащий необязательный IPv4-адрес. Этот адрес представляет поле Исходный адрес протокола (SPA) запроса ARP.

Если входящий запрос ARP имеет значение SPA, соответствующее этому IPv4-адресу, сетевой адаптер отправляет ответ ARP, когда он находится в состоянии низкого энергопотребления. Если этот член равен нулю, сетевой адаптер должен отвечать на запросы ARP с любого удаленного IPv4-адреса.

Дополнительные сведения о протоколе ARP см. в статье RFC 826.

ProtocolOffloadParameters.IPv4ARPParameters.HostIPv4Address[4]

Массив UCHAR , содержащий IPv4-адрес. При отправке ответа ARP сетевой адаптер использует этот член для поля SPA ответа.

ProtocolOffloadParameters.IPv4ARPParameters.MacAddress[6]

Массив UCHAR , содержащий MAC-адрес управления доступом к мультимедиа. Сетевой адаптер использует этот MAC-адрес для поля Исходный аппаратный адрес (SHA) пакета ответа ARP, который он создает.

Примечание При отправке ответа ARP сетевой адаптер всегда должен использовать этот MAC-адрес в полезных данных ARP. Однако в качестве исходного адреса в заголовке MAC следует использовать текущий MAC-адрес сетевого адаптера.
 

ProtocolOffloadParameters.IPv6NSParameters

Структура, содержащая параметры IPv6-соседей (NS). Эта структура содержит следующие элементы:

ProtocolOffloadParameters.IPv6NSParameters.Flags

Значение ULONG , содержащее побитовое ИЛИ флагов. Этот элемент зарезервирован для NDIS.

ProtocolOffloadParameters.IPv6NSParameters.RemoteIPv6Address[16]

Массив UCHAR , содержащий необязательный IPv6-адрес. Этот адрес представляет поле Исходный адрес в заголовке IPv6 сообщения NS.

Если входящее сообщение NS имеет значение Исходного адреса, соответствующее этому IPv6-адресу, сетевой адаптер отправляет соседнее сообщение объявления (NA), когда оно находится в состоянии низкого энергопотребления. Если этот член равен нулю, сетевой адаптер должен отвечать на сообщения NS с любого удаленного IPv6-адреса.

Дополнительные сведения о сообщениях NS и NS IPv6 см. в статье RFC 4861.

ProtocolOffloadParameters.IPv6NSParameters.SolicitedNodeIPv6Address[16]

Массив UCHAR , содержащий запрошенный IPv6-адрес узла. Дополнительные сведения об этом типе IPv6-адресов см. в разделе Многоадресные IPv6-адреса.

ProtocolOffloadParameters.IPv6NSParameters.MacAddress[6]

Массив UCHAR , содержащий MAC-адрес. При отправке сообщения NA сетевой адаптер использует этот массив для поля целевого адреса уровня ссылок (TLLA) сообщения NA.

Примечание При отправке сообщения NA сетевой адаптер должен всегда использовать этот MAC-адрес в поле TLLA сообщения NA. Однако в качестве исходного адреса в заголовке MAC следует использовать текущий MAC-адрес сетевого адаптера.
 

ProtocolOffloadParameters.IPv6NSParameters.TargetIPv6Addresses[2]

Массив UCHAR , содержащий один или два адреса IPv6. Если он содержит только один адрес, он сохраняется в первом элементе массива, а второй элемент заполняется нулями.

Драйверы мини-портов должны использовать все адреса в массиве.

Эти адреса представляют поле Целевой адрес сообщения NS. Если один из этих адресов совпадает с полем Целевой адрес входящего сообщения NS, сетевой адаптер отправляет в ответ сообщение NA.

ProtocolOffloadParameters.Dot11RSNRekeyParameters

Структура, содержащая параметры подтверждения ieee 802.11i Robust Security Network (RSN). Эта структура содержит следующие элементы:

ProtocolOffloadParameters.Dot11RSNRekeyParameters.Flags

Значение ULONG , содержащее побитовое ИЛИ флагов. Этот элемент зарезервирован для NDIS.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KCK[DOT11_RSN_KCK_LENGTH]

Массив UCHAR , содержащий ключ подтверждения ключа IEEE 802.11 (KCK).

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KEK[DOT11_RSN_KEK_LENGTH]

Массив UCHAR , содержащий ключ шифрования ключа IEEE 802.11 (KEK).

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KeyReplayCounter

Значение ULONGLONG , содержащее счетчик воспроизведения.

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2

Структура, содержащая параметры подтверждения для надежной сети безопасности (RSN) версии 2 IEEE 802.11i. Доступно в NDIS 6.84 и более поздних версиях. Эта структура содержит следующие элементы:

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.Flags

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KeyReplayCounter

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.AuthAlgo

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

_PROTOCOL_OFFLOAD_PARAMETERS

Комментарии

Структура NDIS_PM_PROTOCOL_OFFLOAD используется в OID_PM_ADD_PROTOCOL_OFFLOAD и OID_PM_PROTOCOL_OFFLOAD_LIST Oid.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.20 и более поздних версиях.
Верхняя часть ntddndis.h (включая Ntddndis.h)

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

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_PROTOCOL_OFFLOAD_TYPE

OID_PM_ADD_PROTOCOL_OFFLOAD

OID_PM_PROTOCOL_OFFLOAD_LIST