NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO struttura (ndis.h)

La struttura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO specifica informazioni usate per l'offload delle attività di sicurezza del protocollo Internet (IPsec) dal trasporto TCP/IP a un driver miniport.

Sintassi

typedef struct _NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO {
  union {
    struct {
      NDIS_HANDLE OffloadHandle;
    } Transmit;
    struct {
      USHORT SaDeleteReq : 1;
      USHORT CryptoDone : 1;
      USHORT NextCryptoDone : 1;
      USHORT Pad : 13;
      USHORT CryptoStatus;
    } Receive;
  };
} NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO;

Members

Transmit

Struttura che contiene i membri seguenti:

Transmit.OffloadHandle

Handle per l'associazione di sicurezza in uscita (SA) per un pacchetto con un solo payload IPsec, indipendentemente dal fatto che il payload sia per una connessione di trasporto (end-to-end) o una connessione tunnel.

Receive

Struttura che contiene i membri seguenti:

Receive.SaDeleteReq

Valore USHORT che, se impostato, indica che il trasporto TCP/IP deve emettere OID_TCP_TASK_IPSEC_DELETE_SA OID una volta per eliminare la SA in ingresso che il pacchetto è stato ricevuto e ancora una volta per eliminare la SA in uscita che corrisponde alla SA in ingresso eliminata. La scheda di interfaccia di rete (NIC) non deve rimuovere uno di questi SA prima di ricevere la richiesta di OID_TCP_TASK_IPSEC_DELETE_SA corrispondente.

Receive.CryptoDone

Valore USHORT che, quando impostato, indica che una scheda di interfaccia di rete ha eseguito il controllo IPsec su almeno un payload IPsec nel pacchetto di ricezione. Quando questo valore viene cancellato, indica che la scheda di interfaccia di rete non ha eseguito il controllo IPsec sul pacchetto.

Receive.NextCryptoDone

Valore USHORT che, quando impostato, indica che una scheda di interfaccia di rete ha eseguito il controllo IPsec sia sulle parti di tunnel che di trasporto del pacchetto di ricezione. CryptoDone deve essere impostato anche in questo caso. NextCryptoDone è impostato solo se un pacchetto ha payload IPsec di tunnel e trasporto; in caso contrario, NextCryptoDone è impostato su zero.

Receive.Pad

Riservato per NDIS.

Receive.CryptoStatus

Risultato del controllo IPsec eseguito da una scheda di interfaccia di rete in un pacchetto di ricezione. Questo risultato può essere descritto come uno dei valori seguenti:

Valore Significato
CRYPTO_SUCCESS
Il pacchetto è stato decrittografato correttamente, se necessario e il checksum dell'intestazione di autenticazione (AH), l'incapsulamento dei checksum di sicurezza (ESP) o entrambi i checksum nel pacchetto sono stati convalidati.
CRYPTO_GENERIC_ERROR
Il pacchetto ha avuto esito negativo nel controllo IPsec per un motivo non specificato.
CRYPTO_TRANSPORT_AH_AUTH_FAILED
Il checksum AH per la parte di trasporto del pacchetto non è valida.
CRYPTO_TRANSPORT_ESP_AUTH_FAILED
Il checksum ESP per la parte di trasporto del pacchetto non è valido.
CRYPTO_TUNNEL_AH_AUTH_FAILED
Il checksum AH per la parte tunnel del pacchetto non è valida.
CRYPTO_TUNNEL_ESP_AUTH_FAILED
Il checksum ESP per la parte tunnel del pacchetto non è valida.
CRYPTO_INVALID_PACKET_SYNTAX
La lunghezza del pacchetto di ricezione non è valida.
CRYPTO_INVALID_PROTOCOL
I protocolli IPsec specificati nella sa in cui il pacchetto è stato ricevuto in non corrispondono ai protocolli IPsec trovati nel pacchetto. Ad esempio, questo errore si verifica se il sa ricevuto dal pacchetto in specifica il protocollo AH, ma il pacchetto contiene solo un'intestazione ESP.

Commenti

Prima che il trasporto TCP/IP passi un pacchetto di invio che una scheda di interfaccia di rete eseguirà attività IPsec sul driver miniport della scheda di interfaccia di rete, il trasporto aggiorna le informazioni IPsec nella struttura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO associata alla struttura NET_BUFFER_LIST.

In particolare, il trasporto TCP/IP fornisce un valore per il membro OffloadHandle nella struttura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO . Il valore OffloadHandle specifica l'handle all'associazione di sicurezza in uscita (SA) per un pacchetto con un solo payload IPsec, indipendentemente dal fatto che il payload sia per un'associazione di sicurezza di trasporto (end-to-end) o un'associazione di sicurezza tunnel. Il valore OffloadHandle fornito nella struttura di NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO ha lo stesso valore del valore OffloadHandle fornito dal trasporto TCP/IP quando viene impostato OID_TCP_TASK_IPSEC_ADD_SA per richiedere al driver miniport di aggiungere la sa in uscita alla scheda di interfaccia di rete.

Prima di un driver miniport indica un pacchetto di ricezione con uno o più payload IPsec, il driver aggiorna la struttura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO associata alla struttura NET_BUFFER_LIST come indicato di seguito:

  • Se la scheda di interfaccia di rete ha eseguito controlli IPsec su almeno un payload IPsec nel pacchetto, il driver miniport imposta il membro CryptoDone e indica i risultati dei test di convalida checksum specificando il valore appropriato nel membro CryptoStatus .
  • Se la scheda di interfaccia di rete ha eseguito il controllo IPsec sulle parti del tunnel e del trasporto di un pacchetto di ricezione, il driver miniport imposta anche il membro NextCryptoDone . NextCryptoDone è impostato solo se un pacchetto ha payload IPsec di tunnel e trasporto; in caso contrario, NextCryptoDone è impostato su zero.
  • Se la scheda di interfaccia di rete non ha eseguito controlli IPsec sul pacchetto, il driver miniport non imposta CryptoDone o NextCryptoDone e non fornisce un valore CryptoStatus .
Per creare spazio per un altro sa nella scheda di interfaccia di rete, il driver miniport della scheda di interfaccia di rete può impostare SaDeleteReq nella struttura di NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO per un pacchetto di ricezione. Il trasporto TCP/IP genera successivamente problemi OID_TCP_TASK_IPSEC_DELETE_SA una volta per eliminare la SA in ingresso ricevuta dal pacchetto e nuovamente per eliminare l'sa in uscita che corrisponde alla SA in ingresso eliminata. La scheda di interfaccia di rete non deve rimuovere uno di questi SA prima di ricevere la richiesta di OID_TCP_TASK_IPSEC_DELETE_SA corrispondente. Il driver miniport della scheda di interfaccia di rete può impostare SaDeleteReq indipendentemente da CryptoDone .

Per impostare e ottenere le informazioni IPsec, usare l'indice IPsecOffloadV1NetBufferListInfo con la macro NET_BUFFER_LIST_INFO . NET_BUFFER_LIST_INFO restituisce la struttura di NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO .

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0. Per NDIS 6.1 e versioni successive, usare NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO.
Intestazione ndis.h (includere Ndis.h)

Vedi anche

NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_DELETE_SA