OID_TCP_TASK_OFFLOAD

Tumpukan host meminta OID OID_TCP_TASK_OFFLOAD untuk mendapatkan kemampuan offload TCP dari NIC driver miniport atau dari target offload. Setelah menentukan kemampuan offload yang didukung NIC atau target offload, tumpukan host mengatur OID ini untuk mengaktifkan satu atau beberapa kemampuan yang dilaporkan. Tumpukan host juga dapat menonaktifkan semua kemampuan offload TCP target NIC atau offload dengan mengatur OID_TCP_TASK_OFFLOAD. Hanya satu protokol pada satu waktu yang dapat mengaktifkan kemampuan offload TCP dari NIC tertentu.

Mengkueri kemampuan offload

Ketika tumpukan host meminta OID_TCP_TASK_OFFLOAD, itu memasok dalam InformationBuffer struktur NDIS_TASK_OFFLOAD_HEADER . Struktur ini menentukan hal berikut:

  • Versi offload yang didukung oleh tumpukan host.
  • Format enkapulasi untuk mengirim dan menerima paket yang diproses oleh tumpukan host.
  • Ukuran header enkapulasi dalam paket tersebut.

Dengan informasi ini, driver miniport atau NIC-nya dapat menemukan awal header IP pertama dalam paket transmisi, yang merupakan prasyarat untuk melakukan tugas offload. Target offload perlu mengetahui format enkapulasi untuk memproses menerima paket. Menanggapi kueri OID_TCP_TASK_OFFLOAD, driver miniport atau target offload mengembalikan, di InformationBuffer, struktur NDIS_TASK_OFFLOAD_HEADER diikuti segera oleh satu atau beberapa struktur NDIS_TASK_OFFLOAD . Setiap struktur NDIS_TASK_OFFLOAD menjelaskan kemampuan offload yang didukung oleh NIC driver miniport atau oleh target offload. Jika NIC driver miniport atau target offload mendukung beberapa versi kemampuan offload tertentu, itu harus mengembalikan satu struktur NDIS_TASK_OFFLOAD untuk setiap versi.

Setiap struktur NDIS_TASK_OFFLOAD memiliki anggota Tugas yang menentukan kemampuan offload tertentu tempat struktur diterapkan. Setiap struktur NDIS_TASK_OFFLOAD juga memiliki TaskBuffer yang berisi informasi yang berkaitan dengan kemampuan offload yang ditentukan. Informasi dalam TaskBuffer diformat sebagai salah satu struktur berikut:

Catatan

Jika driver perantara memodifikasi konten paket yang diteruskannya ke driver miniport yang mendasarinya sehingga fungsi offload TCP tidak dapat dilakukan pada paket, driver perantara harus merespons kueri OID_TCP_TASK_OFFLOAD dengan status NDIS_STATUS_NOT_SUPPORTED alih-alih meneruskan permintaan OID ke driver miniport atau target offload yang mendasarinya.

Mengaktifkan kemampuan offload

Setelah mengkueri kemampuan offload target NIC atau offload, tumpukan host memungkinkan satu atau beberapa kemampuan ini dengan mengatur OID_TCP_TASK_OFFLOAD. Saat mengatur OID_TCP_TASK_OFFLOAD, tumpukan host memasok, di InformationBuffer, struktur NDIS_TASK_OFFLOAD_HEADER segera diikuti oleh struktur NDIS_TASK_OFFLOAD untuk setiap kemampuan offload yang diaktifkan tumpukan host.

Tugas di setiap struktur NDIS_TASK_OFFLOAD menunjukkan kemampuan offload yang diaktifkan tumpukan host. Tumpukan host juga memungkinkan aspek spesifik dari kemampuan offload tertentu dengan mengatur anggota struktur di TaskBuffer dari setiap struktur NDIS_TASK_OFFLOAD.

Mengubah kemampuan offload

Untuk mengubah kemampuan offload yang diaktifkan untuk NIC atau target offload, tumpukan host mengatur OID_TCP_TASK_OFFLOAD. Driver miniport atau target offload hanya harus mengaktifkan kemampuan offload yang ditentukan oleh set OID_TCP_TASK_OFFLOAD terbaru. Driver miniport atau target offload harus menonaktifkan semua kemampuan offload lainnya. Perhatikan bahwa sebelum menonaktifkan kemampuan offload cerobong TCP tertentu, tumpukan host mengakhiri offload koneksi TCP yang dilepaskan yang menggunakan kemampuan tersebut.

Target offload dapat menggunakan indikasi jeda atau lanjutkan offload untuk mengubah kemampuan offload TCP yang dilaporkan:

  • Target offload membuat indikasi jeda dengan memanggil fungsi NdisMIndicateStatusEx dengan anggota NDIS_STATUS_INDICATION-StatusCode> diatur ke NDIS_STATUS_OFFLOAD_PAUSE.
  • Target offload membuat indikasi resume dengan memanggil fungsi NdisMIndicateStatusEx dengan anggota NDIS_STATUS_INDICATION-StatusCode> diatur ke NDIS_STATUS_OFFLOAD_RESUME.

Setelah target offload meminta tumpukan host untuk melanjutkan objek status offloading, tumpukan host meminta OID_TCP_TASK_OFFLOAD lagi untuk mendapatkan kemampuan offload TCP target yang direvisi. Untuk informasi selengkapnya, lihat NDIS_STATUS_OFFLOAD_RESUME.

Menonaktifkan kemampuan offload

Untuk menonaktifkan semua kemampuan offload yang didukung oleh NIC atau target offload, tumpukan host menetapkan OID_TCP_TASK_OFFLOAD. Dalam InformationBuffer, tumpukan host memasok struktur NDIS_TASK_OFFLOAD_HEADER dengan anggota OffsetFirstTask dari struktur ini diatur ke nol.

Persyaratan

Versi: Windows Vista dan Header yang lebih baru: Ntddndis.h (sertakan Ndis.h)