OFFLOAD_IPSEC_ADD_SA-Struktur (ntddndis.h)
Die OFFLOAD_IPSEC_ADD_SA-Struktur enthält Informationen zu jeder Sicherheitszuordnung, die ein Miniporttreiber einer NIC hinzufügt.
Syntax
typedef struct _OFFLOAD_IPSEC_ADD_SA {
IPAddr SrcAddr;
IPMask SrcMask;
IPAddr DestAddr;
IPMask DestMask;
ULONG Protocol;
USHORT SrcPort;
USHORT DestPort;
IPAddr SrcTunnelAddr;
IPAddr DestTunnelAddr;
USHORT Flags;
SHORT NumSAs;
OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
HANDLE OffloadHandle;
ULONG KeyLen;
UCHAR KeyMat[1];
} OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;
Member
SrcAddr
Die IP-Adresse des Quellhosts (der Host, der die Pakete sendet).
SrcMask
Die Subnetzmaske für die Quell-IP-Adresse.
DestAddr
Die IP-Adresse des Zielhosts (der Host, der die Pakete empfängt).
DestMask
Die Subnetzmaske für die Ziel-IP-Adresse.
Protocol
Das IP-Protokoll. Sie können eine beliebige Kombination von IP-Protokolltypen angeben (z. B. TCP, UDP oder ICMP). Die Codierung des Protokolls ist identisch mit der des Felds Protokoll in einem IP-Header. Wenn Protokoll auf Null festgelegt ist, gilt die SA für jedes IP-Protokoll.
SrcPort
Ein TCP- oder UDP-Quellport. Wenn SrcPort auf 0 festgelegt ist, gilt die SA für jeden TCP/UDP-Quellport.
DestPort
Ein TCP- oder UDP-Zielport. Wenn DestPort auf 0 festgelegt ist, gilt die SA für jeden TCP/UDP-Quellport.
SrcTunnelAddr
Die IP-Adresse für den Quellendpunkt, z. B. einen Connector, eines Tunnels. Der Miniporttreiber verwendet
SrcTunnelAddr als Quelladresse für den Tunnel-IP-Header von Paketen, die an die SA gesendet werden.
SrcTunnelAddr wird nur für eine SA angegeben, die für den Tunnelteil eines Pakets gilt.
SrcTunnelAddr ist für eine SA, die für den Transportteil eines Pakets gilt, auf Null festgelegt.
DestTunnelAddr
Die IP-Adresse für den Zielendpunkt, z. B. einen Connector, eines Tunnels. Der Miniporttreiber verwendet DestTunnelAddr als Zieladresse für den Tunnel-IP-Header von Paketen, die an die SA gesendet werden. DestTunnelAddr wird nur für eine SA angegeben, die für den Tunnelteil eines Pakets gilt. DestTunnelAddr ist für eine SA, die für den Transportteil eines Pakets gilt, auf Null festgelegt.
Flags
Eine Bitmaske, die angibt, ob es sich bei der hinzugefügten SA um eine eingehende oder ausgehende SA handelt:
OFFLOAD_INBOUND_SA
Gibt eine eingehende SA an.
OFFLOAD_OUTBOUND_SA
Gibt eine ausgehende SA an.
NumSAs
Die Anzahl der Elemente im SecAssoc-Array . Jedes Element im Array ist ein OFFLOAD_SECURITY_ASSOCIATION Struktur.
SecAssoc[OFFLOAD_MAX_SAS]
Ein Array mit variabler Länge, das die Informationen zu den Internetprotokollsicherheitsvorgängen (Internet Protocol Security, IPsec) (AH oder ESP) für die Sa enthält. Die Informationen für die einzelnen IPsec-Vorgänge sind als OFFLOAD_SECURITY_ASSOCIATION-Struktur formatiert.
Der TCP/IP-Transport gibt eine oder zwei OFFLOAD_SECURITY_ASSOCIATION Strukturen im Puffer bei SecAssoc an. Jede OFFLOAD_SECURITY_ASSOCIATION-Struktur gibt den Typ des Vorgangs an – Authentifizierung oder Verschlüsselung/Entschlüsselung –, für den die in der Struktur angegebene SA verwendet werden soll. Die Reihenfolge der OFFLOAD_SECURITY_ASSOCIATION Strukturen im Array gibt die Reihenfolge an, in der der Miniporttreiber die Vorgänge für jede SA ausführen soll. Es wird nur eine Kombination von Vorgängen unterstützt: Die Verschlüsselung/Entschlüsselung (ESP) gefolgt von der Authentifizierung (AH).
OffloadHandle
Das Handle für die neu erstellte SA. Der Miniporttreiber stellt diesen Griff bereit, bevor er die
OID_TCP_TASK_IPSEC_ADD_SA Anforderung.
Der TCP/IP-Transport muss dieses Handle in der NDIS_IPSEC_PACKET_INFO-Struktur angeben, bevor ein Sendepaket an den Miniporttreiber übergeben wird. Der TCP/IP-Transport muss diesen Handle auch angeben, wenn die SA mit einem gelöscht wird. OID_TCP_TASK_IPSEC_DELETE_SA Anforderung.
KeyLen
Die Länge des Puffers bei KeyMat in Bytes.
KeyMat[1]
Ein Array mit variabler Länge, das Schlüssel für die in SecAssoc angegebenen SAs enthält. Wenn sowohl ein Vertraulichkeitsalgorithmus (Verschlüsselung/Entschlüsselung) als auch ein Integritätsalgorithmus (Authentifizierung) von den Elementen ConfAlgo und IntegrityAlgo eines angegeben werden OFFLOAD_SECURITY_ASSOCIATION Struktur enthält der Puffer bei KeyMat zuerst Schlüsselinformationen für den Bestätigungsalgorithmus, gefolgt von Schlüsselinformationen für den Integritätsalgorithmus.
Die Länge jedes Schlüssels im Puffer bei KeyMat wird von algoKeylen in der OFFLOAD_ALGO_INFO-Struktur angegeben, die den Vertraulichkeits- oder Integritätsalgorithmus angibt. (Eine OFFLOAD_ALGO_INFO-Struktur ist ein Element einer OFFLOAD_SECURITY_ASSOCIATION-Struktur.)
Hinweise
Die OFFLOAD_IPSEC_ADD_SA-Struktur wird in der OID_TCP_TASK_IPSEC_ADD_SA OID verwendet.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddndis.h (include Ndis.h) |