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


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

Структура OFFLOAD_IPSEC_ADD_UDPESP_SA содержит сведения для каждой связи безопасности (SA), которую мини-драйвер добавляет для пакетов ESP, инкапсулированных UDP, в сетевой адаптер.

Синтаксис

typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA {
  IPAddr                               SrcAddr;
  IPMask                               SrcMask;
  IPAddr                               DstAddr;
  IPMask                               DstMask;
  ULONG                                Protocol;
  USHORT                               SrcPort;
  USHORT                               DstPort;
  IPAddr                               SrcTunnelAddr;
  IPAddr                               DstTunnelAddr;
  USHORT                               Flags;
  SHORT                                NumSAs;
  OFFLOAD_SECURITY_ASSOCIATION         SecAssoc[OFFLOAD_MAX_SAS];
  HANDLE                               OffloadHandle;
  OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
  HANDLE                               EncapTypeEntryOffldHandle;
  ULONG                                KeyLen;
  UCHAR                                KeyMat[1];
} OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA;

Члены

SrcAddr

IP-адрес исходного узла (узел, отправляя пакеты).

SrcMask

Маска подсети для исходного IP-адреса.

DstAddr

IP-адрес конечного узла (узел, получая пакеты).

DstMask

Маска подсети для целевого IP-адреса.

Protocol

Протокол IP. Кодировка протокола идентична кодировке поля Протокола в заголовке IP. Значение должно иметь значение 11 (шестнадцатеричное), указывающее UDP.

SrcPort

Исходный ПОРТ TCP или UDP. Если SrcPort задано нулевое значение, SA применяется к любому исходному порту TCP/UDP.

DstPort

Конечный ПОРТ TCP или UDP. Если DestPort равно нулю, SA применяется к любому исходному порту TCP/UDP.

SrcTunnelAddr

IP-адрес исходной конечной точки, например соединителя, туннеля. Используется минипорт-драйвер
SrcTunnelAddr в качестве исходного адреса заголовка IP-адреса туннеля пакетов, отправленных в SA. SrcTunnelAddr указывается только для SA, который применяется к части туннеля пакета. SrcTunnelAddr равно нулю для SA, применяемого к транспортной части пакета.

DstTunnelAddr

IP-адрес конечной точки назначения, например соединителя, туннеля. Драйвер минипорта использует DestTunnelAddr в качестве адреса назначения для заголовка IP-адреса туннеля пакетов, отправленных в SA. DestTunnelAddr указывается только для SA, который применяется к части туннеля пакета. DestTunnelAddr равно нулю для SA, применяемого к транспортной части пакета.

Flags

Битовая маска, указывающая, является ли добавленный SA входящий или исходящий SA следующим образом:

OFFLOAD_INBOUND_SA

Указывает входящий SA.

OFFLOAD_OUTBOUND_SA

Указывает исходящий SA.

NumSAs

Количество элементов в массиве SecAssoc. Каждый элемент в массиве является элементом структура OFFLOAD_SECURITY_ASSOCIATION.

SecAssoc[OFFLOAD_MAX_SAS]

Массив переменной длины, содержащий сведения об операциях безопасности протокола Интернета (IPsec) (AH или ESP) для SA. Сведения для каждой операции IPsec форматируются как структура OFFLOAD_SECURITY_ASSOCIATION.

Транспорт TCP/IP указывает одну или две структуры OFFLOAD_SECURITY_ASSOCIATION в буфере в SecAssoc. Каждая OFFLOAD_SECURITY_ASSOCIATION структура указывает тип операции-аутентификации или шифрования или расшифровки, для которого используется SA, указанный в структуре. Порядок структур OFFLOAD_SECURITY_ASSOCIATION в массиве указывает порядок, в котором драйвер мини-порта должен выполнять операции для каждого SA. Поддерживается только одно сочетание операций: шифрование и расшифровка (ESP), за которым следует проверка подлинности (AH).

OffloadHandle

Дескриптор только что созданного SA. Минипорт драйвер предоставляет этот дескриптор перед завершением
запрос OID_TCP_TASK_IPSEC_ADD_SA. Транспорт TCP/IP должен указать этот дескриптор в структуре NDIS_IPSEC_PACKET_INFO перед передачей пакета отправки в мини-драйвер. Транспорт TCP/IP также должен указать этот дескриптор при удалении SA с помощью запрос OID_TCP_TASK_IPSEC_DELETE_SA.

EncapTypeEntry

Тип инкапсуляции UDP-ESP и конечный порт записи синтаксического анализа. Эти сведения форматируются как структура OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY.

EncapTypeEntryOffldHandle

Если Флаги= OFFLOAD_INBOUND_SA и EncapTypeEntryOffldHandle значение NULL , драйвер минипорта должен проверить, указана ли запись средства синтаксического анализа, указанная EncapTypeEntry в списке записей средства синтаксического анализа сетевого адаптера. Если это не так, драйвер минипорта должен создать запись синтаксического анализа, используя тип инкапсуляции и порт назначения, указанный в EncapTypeEntry, добавьте запись синтаксического анализа в список записей синтаксического анализатора и выгрузите указанные единые точки. Минипорт-драйвер должен возвращать дескриптор в EncapTypeEntryOffldHandle, который идентифицирует только что созданную запись синтаксического анализа. Если указанная запись синтаксического анализа уже находится в списке записей средства синтаксического анализа, минипорт должен просто вернуть дескриптор в EncapTypeEntryOffldHandle для существующей записи синтаксического анализа.

Если флаги = OFFLOAD_INBOUND_SA и EncapTypeEntryOffldHandle неNULL, EncapTypeEntryOffldHandle содержит дескриптор записи синтаксического анализа, которая уже находится в списке записей средства синтаксического анализа сетевого адаптера. В этом случае минипорт-драйвер должен просто выгрузить указанные SAs.

Если Флаги= OFFLOAD_OUTBOUND_SA, драйвер минипорта должен игнорировать параметр EncapTypeEntryOffldHandle.

KeyLen

Длина буфера в байтах в KeyMat.

KeyMat[1]

Массив переменной длины, содержащий ключи для SAs, указанных в SecAssoc. Если алгоритм конфиденциальности (шифрование и расшифровка) и алгоритм целостности (аутентификация) задаются ConfAlgo и IntegrityAlgo OFFLOAD_SECURITY_ASSOCIATION структура буфера KeyMat содержит ключевые сведения для алгоритма подтверждения, а затем сразу же ключевые сведения для алгоритма целостности.

Длина каждого ключа в буфере в KeyMat определяется algoKeyLen в структуре OFFLOAD_ALGO_INFO, указывающей алгоритм конфиденциальности или целостности. (Структура OFFLOAD_ALGO_INFO является членом OFFLOAD_SECURITY_ASSOCIATION структуры.)

Замечания

Структура OFFLOAD_IPSEC_ADD_UDPESP_SA используется с OID_TCP_TASK_IPSEC_ADD_UDPESP_SA OID.

Обратите внимание, что структура OFFLOAD_IPSEC_ADD_UDPESP_SA почти идентична структуре OFFLOAD_IPSEC_ADD_SA, используемой в запросе OID_TCP_TASK_IPSEC_ADD_SA. Единственное различие заключается в том, что структура OFFLOAD_IPSEC_ADD_UDPESP_SA содержит EncapTypeEntry и элементы EncapTypeEntryOffldHandle.

Требования

Требование Ценность
заголовка ntddndis.h (include Ndis.h)

См. также

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_IPSEC_ADD_SA

OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_ADD_UDPESP_SA

OID_TCP_TASK_IPSEC_DELETE_SA