Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[Fitur offload cerobong asap TCP tidak digunakan lagi dan tidak boleh digunakan.]
NDIS memanggil fungsi MiniportTcpOffloadForward untuk meneruskan segmen TCP yang diterima yang tidak diakui ke target offload.
Sintaksis
W_TCP_OFFLOAD_FORWARD_HANDLER WTcpOffloadForwardHandler;
NDIS_STATUS WTcpOffloadForwardHandler(
[in] IN NDIS_HANDLE MiniportAdapterContext,
[in] IN PVOID MiniportOffloadContext,
[in] IN PNET_BUFFER_LIST NetBufferList
)
{...}
Parameter
[in] MiniportAdapterContext
Handel ke area konteks yang dialokasikan target offload tempat target offload mempertahankan informasi status tentang instans adaptor ini. Driver miniport menyediakan handel ini ke NDIS ketika dipanggil NdisMSetMiniportAttributes dari fungsi MiniportInitializeEx.
[in] MiniportOffloadContext
Penunjuk ke lokasi memori yang berisi nilai PVOID. Nilai PVOID ini mereferensikan konteks offload miniport yang berisi objek status untuk koneksi TCP tempat segmen TCP diteruskan. Target offload menyediakan nilai PVOID ini ketika membongkar objek status koneksi TCP.
[in] NetBufferList
Penunjuk ke struktur NET_BUFFER_LIST. Struktur ini mungkin merupakan struktur yang berdiri sendiri atau struktur pertama dalam daftar struktur NET_BUFFER_LIST yang ditautkan. Setiap struktur NET_BUFFER_LIST dalam daftar menjelaskan satu struktur NET_BUFFER. Setiap NET_BUFFER struktur dipetakan ke rantai daftar deskriptor memori (MDL). MDL yang terkait dengan struktur NET_BUFFER berisi satu dan hanya satu segmen TCP yang sedang diteruskan ke target offload. Byte pertama dari MDL pertama adalah byte pertama dari header TCP. Struktur NET_BUFFER_LIST dan terkait dikunci sehingga mereka tetap tinggal dalam memori fisik. Namun, mereka tidak dipetakan ke dalam memori sistem.
Mengembalikan nilai
NDIS_STATUS_PENDING adalah satu-satunya nilai pengembalian yang diizinkan. Target offload selalu menyelesaikan permintaan penerusan secara asinkron dengan memanggil fungsi NdisTcpOffloadForwardComplete.
Komentar
Tumpukan host meneruskan satu atau beberapa segmen TCP yang telah diterimanya tetapi tidak diakui dalam situasi berikut:
- Tumpukan host menerima segmen pada koneksi TCP yang sedang dilepas ke target offload. Karena koneksi tidak sepenuhnya dilepas, target offload tidak dapat memproses segmen TCP pada saat itu.
- Tumpukan host berada dalam sistem multihomed yang menerima segmen pada antarmuka jaringan selain yang koneksi TCP-nya dilepaskan.
- Target offload sebelumnya menunjukkan paket yang diterima yang memiliki set opsi IP dan/atau yang merupakan fragmen yang perlu disusun ulang. Setelah memproses opsi IP dan/atau berhasil menyusun ulang paket, tumpukan host meneruskan segmen TCP ke target offload.
- Koneksi itu sedang dilepaskan. Tumpukan host selalu menunggu offload koneksi selesai sebelum meneruskan paket apa pun untuk koneksi tersebut. Tumpukan host meneruskan segmen TCP sesegera mungkin setelah offload koneksi selesai. Namun, tidak ada batas waktu untuk meneruskan segmen tersebut.
- Offload koneksi tersebut sedang dihentikan. Dalam hal ini, tumpukan host menyangga data hingga penghentian offload selesai dan kemudian memproses segmen.
Saat meneruskan segmen TCP, tumpukan host mentransfer satu segmen TCP per struktur NET_BUFFER. Tumpukan host hanya mengaitkan satu struktur NET_BUFFER, dan oleh karena itu satu segmen TCP yang diteruskan, dengan setiap struktur NET_BUFFER_LIST dalam daftar yang ditautkan.
Tumpukan host mengalokasikan struktur NET_BUFFER_LIST dan terkait yang diteruskan NDIS ke fungsi MiniportTcpOffloadForward. Target offload memiliki sumber daya ini sampai meneruskannya ke fungsi NdisTcpOffloadForwardComplete. Meskipun memiliki sumber daya ini, target offload bebas untuk mengantrekannya untuk diproses.
Persyaratan
Syarat | Nilai |
---|---|
Platform Target | Windows |
Header | ndischimney.h (termasuk Ndischimney.h) |
IRQL | Tingkat apa pun |