Bagikan melalui


SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS kode kontrol

Operasi kontrol I/O soket SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS memungkinkan klien Winsock untuk mengambil rekaman pengalihan untuk koneksi yang dialihkan.

Catatan pengalihan WFP adalah buffer data buram yang harus diatur WFP pada koneksi proksi keluar sehingga koneksi yang dialihkan dan koneksi asli terkait secara logis.

Catatan Kueri SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS hanya dapat digunakan jika koneksi dialihkan pada lapisan FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 atau FWPS_LAYER_ALE_CONNECT_REDIRECT_V6 oleh klien WFP.

Untuk informasi selengkapnya tentang pengalihan, lihat Menggunakan Ikatan atau Sambungkan Pengalihan.

Untuk mengkueri rekaman pengalihan untuk koneksi yang dialihkan, klien Winsock memanggil fungsi WskControlSocket dengan parameter berikut.

Parameter Nilai

RequestType

WskIoctl

ControlCode

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

Level

0

Ukuran Input

0

InputBuffer

NULL

OutputSize

Ukuran, dalam byte, dari buffer yang diacu oleh parameter OutputBuffer .

OutputBuffer

Penunjuk ke buffer yang menerima rekaman pengalihan untuk koneksi TCP yang diterima. Ukuran buffer ditentukan dalam parameter OutputSize .

OutputSizeReturned

Penunjuk ke variabel berjenis ULONG yang menerima jumlah byte data yang disalin ke dalam buffer yang diacu oleh parameter OutputBuffer .

Irp

Penunjuk ke IRP.

Pemanggil dapat melakukan kueri ini dengan salah satu cara berikut:

  • Ini dapat mengatur OutputBuffer ke buffer besar berukuran sekitar 1 KB. Jika ukuran buffer output tidak cukup besar, WskControlSocket akan mengembalikan STATUS_BUFFER_TOO_SMALL dan OutputSizeReturned akan berisi ukuran buffer yang diperlukan. Buffer yang lebih besar kemudian dapat dialokasikan dan WskControlSocket dipanggil lagi dengan permintaan SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS dan OutputBuffer diatur ke buffer yang lebih besar.
  • Atau dapat mengatur parameter OutputSize ke 0 dan OutputBuffer ke NULL lalu memanggil WskControlSocket. Setelah selesai, fungsi WskControlSocket mengambil ukuran buffer output, dalam byte, dalam parameter OutputSizeReturned . Buffer berukuran tepat kemudian dapat dialokasikan dan WskControlSocket dipanggil lagi dengan permintaan SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS dan OutputBuffer diatur ke buffer.

Catatan Dimungkinkan juga untuk melakukan kueri ini dalam aplikasi mode pengguna dengan menggunakan SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK).

Untuk jenis permintaan ini, klien Winsock harus menentukan pointer ke IRP dan pointer ke rutinitas penyelesaiannya. IRP dapat diteruskan ke klien oleh driver yang lebih tinggi atau klien dapat memilih untuk mengalokasikan IRP. Untuk menentukan rutinitas penyelesaian, klien harus memanggil IoSetCompletionRoutine. Untuk detail selengkapnya, lihat Menggunakan IRP dengan Winsock Kernel Functions.

Klien Winsock tidak boleh membebaskan buffer yang dialokasikan sampai IRP diselesaikan oleh subsistem WSK. Ketika subsistem WSK menyelesaikan IRP, itu memberi tahu klien dengan memanggil rutinitas penyelesaian. Referensi ke buffer tersebut diteruskan ke klien oleh subsistem WSK dalam parameter Konteks dari rutinitas penyelesaian. Ukuran buffer disimpan dalam Irp-IoStatus.Information>.

Klien bisa mendapatkan status IRP dengan memeriksa Irp-IoStatus.Status>. Irp-> IoStatus.Status akan diatur ke STATUS_SUCCESS jika permintaan berhasil. Jika tidak, itu akan berisi STATUS_INTEGER_OVERFLOW, STATUS_NOT_FOUND, STATUS_BUFFER_TOO_SMALL, atau STATUS_ACCESS_DENIED jika panggilan tidak berhasil.

Persyaratan

Klien minimum yang didukung

Windows 8

Server minimum yang didukung

Windows Server 2012

Header

Mstcpip.h

IRQL

PASSIVE_LEVEL

Lihat juga

Menggunakan Ikat atau Sambungkan Pengalihan

Menggunakan IRP dengan Fungsi Kernel Winsock

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK)

SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS