Bagikan melalui


SIO_LOOPBACK_FAST_PATH kode kontrol

PentingSIO_LOOPBACK_FAST_PATH tidak digunakan lagi dan tidak disarankan untuk digunakan dalam kode Anda.

Kode kontrol I/O soket SIO_LOOPBACK_FAST_PATH memungkinkan aplikasi WSK mengonfigurasi soket TCP untuk operasi yang lebih cepat pada antarmuka loopback.

Untuk menggunakan IOCTL ini, aplikasi WSK memanggil fungsi WskControlSocket dengan parameter berikut.

Parameter Nilai

RequestType

WskIoctl

ControlCode

SIO_LOOPBACK_FAST_PATH

Level

0

Ukuran Input

Ukuran, dalam byte, dari buffer input.

InputBuffer

Penunjuk ke buffer input. Parameter ini berisi pointer ke nilai Boolean yang menunjukkan apakah soket harus dikonfigurasi untuk operasi loopback cepat.

OutputSize

0

OutputBuffer

NULL

OutputSizeReturned

NULL

Irp

Penunjuk ke IRP.

Aplikasi dapat menggunakan SIO_LOOPBACK_FAST_PATH IOCTL untuk meningkatkan performa operasi loopback pada soket TCP. IOCTL ini meminta agar tumpukan TCP/IP menggunakan jalur cepat khusus untuk operasi loopback pada soket ini. IOCTL SIO_LOOPBACK_FAST_PATH hanya dapat digunakan dengan soket TCP. IOCTL ini harus digunakan di kedua sisi sesi loopback. Jalur cepat loopback TCP didukung menggunakan antarmuka loopback IPv4 atau IPv6.

Soket yang berencana untuk memulai permintaan koneksi harus menerapkan IOCTL ini sebelum membuat permintaan koneksi. Soket yang mendengarkan permintaan koneksi harus menerapkan IOCTL ini sebelum menerima koneksi.

Setelah aplikasi menetapkan koneksi pada antarmuka loopback menggunakan jalur cepat, semua paket untuk masa pakai koneksi harus menggunakan jalur cepat.

Menerapkan SIO_LOOPBACK_FAST_PATH ke soket yang akan terhubung ke jalur non-loopback tidak akan berpengaruh.

Pengoptimalan loopback TCP ini menghasilkan paket yang mengalir melalui Lapisan Transportasi (TL) alih-alih loopback tradisional melalui Lapisan Jaringan. Pengoptimalan ini meningkatkan latensi untuk paket loopback. Setelah aplikasi memilih pengaturan tingkat koneksi untuk menggunakan jalur cepat loopback, semua paket akan mengikuti jalur loopback. Untuk komunikasi loopback, kemacetan dan penurunan paket tidak diharapkan. Gagasan kontrol kemacetan dan pengiriman yang dapat diandalkan dalam TCP tidak akan perlu. Namun, ini tidak berlaku untuk kontrol alur. Tanpa kontrol aliran, pengirim dapat membanjiri buffer penerima, yang mengarah ke perilaku loopback TCP yang salah. Kontrol alur di jalur loopback yang dioptimalkan TCP dipertahankan dengan menempatkan permintaan kirim dalam antrean. Ketika buffer penerima penuh, tumpukan TCP/IP menjamin bahwa pengiriman tidak akan selesai sampai antrean dilayanakan, mempertahankan kontrol alur.

Koneksi loopback jalur cepat TCP di hadapan callout Windows Filtering Platform (WFP) untuk data koneksi harus mengambil jalur lambat yang tidak optimal untuk loopback. Jadi filter WFP akan mencegah jalur cepat loopback baru ini digunakan. Ketika filter WFP diaktifkan, sistem akan menggunakan jalur lambat meskipun SIO_LOOPBACK_FAST_PATH IOCTL diatur. Ini berarti bahwa aplikasi mode pengguna memiliki kemampuan keamanan WFP penuh.

Secara default, SIO_LOOPBACK_FAST_PATH dinonaktifkan.

Hanya subset opsi soket TCP/IP yang didukung ketika SIO_LOOPBACK_FAST_PATH IOCTL digunakan untuk mengaktifkan jalur cepat loopback pada soket. Daftar opsi yang didukung mencakup hal berikut:

Aplikasi WSK harus menentukan pointer ke IRP dan rutinitas penyelesaian saat memanggil fungsi WskControlSocket untuk jenis permintaan ini. Aplikasi tidak boleh merilis buffer sampai subsistem WSK telah menyelesaikan IRP. Ketika menyelesaikan IRP, subsistem memanggil rutinitas penyelesaian. Dalam rutinitas penyelesaian, aplikasi harus memeriksa status IRP dan merilis semua sumber daya yang sebelumnya dialokasikan untuk permintaan tersebut.

Untuk informasi selengkapnya tentang penanganan IRP WSK, lihat Menggunakan RUNPS dengan Fungsi Kernel Winsock.

Saat menyelesaikan IRP, subsistem akan mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS jika permintaan berhasil. Jika tidak, Irp-IoStatus.Status> akan diatur ke STATUS_INVALID_BUFFER_SIZE atau STATUS_NOT_SUPPORTED jika panggilan tidak berhasil.

Mengembalikan nilai

Persyaratan

Klien minimum yang didukung

Windows 8

Server minimum yang didukung

Windows Server 2012

Header

Mstcpip.h

IRQL

PASSIVE_LEVEL

Lihat juga

SIO_LOOPBACK_FAST_PATH (SDK)

Menggunakan IRP dengan Fungsi Kernel Winsock