struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO (ndis.h)

Struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO menentukan informasi yang digunakan dalam membongkar tugas keamanan protokol Internet (IPsec) dari transportasi TCP/IP ke driver miniport.

Sintaks

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;

Anggota

Transmit

Struktur yang berisi anggota berikut:

Transmit.OffloadHandle

Handel ke asosiasi keamanan keluar (SA) untuk paket yang hanya memiliki satu payload IPsec, terlepas dari apakah payload tersebut untuk koneksi transportasi (end-to-end) atau koneksi terowongan.

Receive

Struktur yang berisi anggota berikut:

Receive.SaDeleteReq

Nilai USHORT yang, ketika diatur, menunjukkan bahwa transportasi TCP/IP harus mengeluarkan OID_TCP_TASK_IPSEC_DELETE_SA OID sekali untuk menghapus SA masuk yang diterima paket dan sekali lagi untuk menghapus SA keluar yang sesuai dengan SA masuk yang dihapus. Kartu antarmuka jaringan (NIC) tidak boleh menghapus salah satu CA ini sebelum menerima permintaan OID_TCP_TASK_IPSEC_DELETE_SA yang sesuai.

Receive.CryptoDone

Nilai USHORT yang, ketika diatur, menunjukkan bahwa NIC melakukan pemeriksaan IPsec pada setidaknya satu payload IPsec dalam paket terima. Ketika nilai ini dibersihkan, itu menunjukkan bahwa NIC tidak melakukan pemeriksaan IPsec pada paket.

Receive.NextCryptoDone

Nilai USHORT yang, ketika ditetapkan, menunjukkan bahwa NIC melakukan pemeriksaan IPsec pada bagian terowongan dan transportasi paket terima. CryptoDone juga harus diatur dalam kasus ini. NextCryptoDone diatur hanya jika paket memiliki payload IPsec terowongan dan transportasi; jika tidak, NextCryptoDone diatur ke nol.

Receive.Pad

Dicadangkan untuk NDIS.

Receive.CryptoStatus

Hasil pemeriksaan IPsec bahwa NIC dilakukan pada paket penerima. Hasil ini dapat digambarkan sebagai salah satu nilai berikut:

Nilai Makna
CRYPTO_SUCCESS
Paket berhasil didekripsi, jika perlu, dan checksum header autentikasi (AH), merangkum checksum payload keamanan (ESP), atau kedua checksum dalam paket divalidasi.
CRYPTO_GENERIC_ERROR
Paket gagal dalam pemeriksaan IPsec karena alasan yang tidak ditentukan.
CRYPTO_TRANSPORT_AH_AUTH_FAILED
Checksum AH untuk bagian transportasi paket tidak valid.
CRYPTO_TRANSPORT_ESP_AUTH_FAILED
Checksum ESP untuk bagian transportasi paket tidak valid.
CRYPTO_TUNNEL_AH_AUTH_FAILED
Checksum AH untuk bagian terowongan paket tidak valid.
CRYPTO_TUNNEL_ESP_AUTH_FAILED
Checksum ESP untuk bagian terowongan paket tidak valid.
CRYPTO_INVALID_PACKET_SYNTAX
Panjang paket penerima tidak valid.
CRYPTO_INVALID_PROTOCOL
Protokol IPsec yang ditentukan dalam SA tempat paket diterima tidak cocok dengan protokol IPsec yang ditemukan dalam paket. Misalnya, kesalahan ini terjadi jika SA yang diterima paket pada menentukan protokol AH tetapi paket hanya berisi header ESP.

Keterangan

Sebelum transportasi TCP/IP melewati paket kirim bahwa NIC akan melakukan tugas IPsec ke driver miniport NIC, transportasi memperbarui informasi IPsec dalam struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO yang terkait dengan struktur NET_BUFFER_LIST .

Secara khusus, transportasi TCP/IP memasok nilai untuk anggota OffloadHandle dalam struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO . Nilai OffloadHandle menentukan handel ke asosiasi keamanan keluar (SA) untuk paket yang hanya memiliki satu payload IPsec, terlepas dari apakah payload tersebut untuk asosiasi keamanan transportasi (end-to-end) atau asosiasi keamanan terowongan. Nilai OffloadHandle yang disediakan dalam struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO memiliki nilai yang sama dengan nilai OffloadHandle yang disediakan transportasi TCP/IP ketika diatur OID_TCP_TASK_IPSEC_ADD_SA untuk meminta driver miniport untuk menambahkan SA keluar ke NIC.

Sebelum driver miniport menunjukkan paket terima yang memiliki satu atau beberapa payload IPsec, driver memperbarui struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO yang terkait dengan struktur NET_BUFFER_LIST sebagai berikut:

  • Jika NIC melakukan pemeriksaan IPsec pada setidaknya satu payload IPsec dalam paket, driver miniport menetapkan anggota CryptoDone dan menunjukkan hasil tes validasi checksum dengan menentukan nilai yang sesuai dalam anggota CryptoStatus .
  • Jika NIC melakukan pemeriksaan IPsec pada bagian terowongan dan transportasi dari paket penerima, driver miniport juga menetapkan anggota NextCryptoDone . NextCryptoDone diatur hanya jika paket memiliki payload IPsec terowongan dan transportasi; jika tidak, NextCryptoDone diatur ke nol.
  • Jika NIC tidak melakukan pemeriksaan IPsec pada paket, driver miniport tidak mengatur CryptoDone atau NextCryptoDone dan tidak menyediakan nilai CryptoStatus .
Untuk membuat ruang untuk SA lain di NIC, driver miniport NIC dapat mengatur SaDeleteReq dalam struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO untuk paket penerima. Transportasi TCP/IP kemudian mengeluarkan OID_TCP_TASK_IPSEC_DELETE_SA sekali untuk menghapus SA masuk yang diterima paket dan sekali lagi untuk menghapus SA keluar yang sesuai dengan SA masuk yang dihapus. NIC tidak boleh menghapus salah satu SAs ini sebelum menerima permintaan OID_TCP_TASK_IPSEC_DELETE_SA yang sesuai. Driver miniport NIC dapat mengatur SaDeleteReq secara independen dari CryptoDone .

Untuk mengatur dan mendapatkan informasi IPsec, gunakan indeks IPsecOffloadV1NetBufferListInfo dengan makro NET_BUFFER_LIST_INFO . NET_BUFFER_LIST_INFO mengembalikan struktur NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0. Untuk NDIS 6.1 dan yang lebih baru, gunakan NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO.
Header ndis.h (termasuk Ndis.h)

Lihat juga

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