Fungsi SetPerTcpConnectionEStats (iphlpapi.h)

Fungsi SetPerTcpConnectionEStats menetapkan nilai dalam informasi baca/tulis untuk koneksi TCP IPv4. Fungsi ini digunakan untuk mengaktifkan atau menonaktifkan statistik yang diperluas untuk koneksi TCP IPv4.

Sintaks

IPHLPAPI_DLL_LINKAGE ULONG SetPerTcpConnectionEStats(
  PMIB_TCPROW     Row,
  TCP_ESTATS_TYPE EstatsType,
  PUCHAR          Rw,
  ULONG           RwVersion,
  ULONG           RwSize,
  ULONG           Offset
);

Parameter

Row

Penunjuk ke struktur MIB_TCPROW untuk koneksi TCP IPv4.

EstatsType

Jenis statistik yang diperluas untuk ditetapkan TCP. Parameter ini menentukan data dan format informasi yang diharapkan dalam parameter Rw .

Parameter ini dapat menjadi salah satu nilai dari jenis enumerasi TCP_ESTATS_TYPE yang ditentukan dalam file header Tcpestats.h .

Rw

Penunjuk ke buffer yang berisi informasi baca/tulis untuk diatur. Buffer harus berisi nilai dari enumerasi TCP_BOOLEAN_OPTIONAL untuk setiap anggota struktur yang menentukan bagaimana setiap anggota harus diperbarui.

RwVersion

Versi informasi baca/tulis yang akan diatur. Parameter ini harus diatur ke nol untuk Windows Vista, Windows Server 2008, dan Windows 7.

RwSize

Ukuran, dalam byte, dari buffer yang diarahkan oleh parameter Rw .

Offset

Offset, dalam byte, kepada anggota dalam struktur yang diarahkan oleh parameter Rw yang akan diatur. Parameter ini saat ini tidak digunakan dan harus diatur ke nol.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan NO_ERROR.

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Akses ditolak. Kesalahan ini dikembalikan dalam beberapa kondisi yang mencakup hal berikut: pengguna tidak memiliki hak istimewa administratif yang diperlukan di komputer lokal atau aplikasi tidak berjalan dalam shell yang ditingkatkan sebagai Administrator bawaan (administrator RunAs).
ERROR_INVALID_USER_BUFFER
Buffer pengguna yang disediakan tidak valid untuk operasi yang diminta. Kesalahan ini dikembalikan jika parameter Baris adalah penunjuk NULL dan parameter RwSize bukan nol.
ERROR_INVALID_PARAMETER
Parameter salah. Kesalahan ini dikembalikan jika parameter Baris adalah penunjuk NULL .
ERROR_NOT_FOUND
Entri yang diminta ini tidak ditemukan. Kesalahan ini dikembalikan jika koneksi TCP yang ditentukan dalam parameter Baris tidak dapat ditemukan.
ERROR_NOT_SUPPORTED
Permintaan tidak didukung. Kesalahan ini dikembalikan jika parameter RwVersion atau Offset tidak diatur ke 0.
Lainnya
Gunakan FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan.

Keterangan

Fungsi SetPerTcpConnectionEStats ditentukan pada Windows Vista dan yang lebih baru.

Fungsi SetPerTcpConnectionEStats digunakan untuk mengaktifkan atau menonaktifkan statistik yang diperluas pada koneksi TCP IPv4 yang diteruskan dalam parameter Baris . Statistik yang diperluas pada koneksi TCP dinonaktifkan secara default. Fungsi SetPerTcpConnectionEStats digunakan untuk mengatur nilai anggota dalam informasi baca/tulis untuk statistik yang diperluas untuk koneksi TCP IPv4. Jenis dan format struktur yang akan ditetapkan ditentukan oleh parameter EstatsType . Parameter Rw berisi penunjuk ke struktur yang sedang diteruskan. Semua anggota dalam struktur yang diarahkan oleh parameter Rw harus ditentukan.

Satu-satunya versi statistik koneksi TCP yang saat ini didukung adalah versi nol. Jadi parameter RwVersion yang diteruskan ke SetPerTcpConnectionEStats harus diatur ke 0.

Struktur yang diarahkan oleh parameter Rw yang melewati fungsi ini tergantung pada nilai enumerasi yang diteruskan dalam parameter EstatsType . Tabel berikut menunjukkan jenis struktur yang harus diteruskan dalam parameter Rw untuk setiap kemungkinan jenis parameter EstatsType .

EstatsType Struktur diarahkan ke oleh Rw
TcpConnectionEstatsData TCP_ESTATS_DATA_RW_v0
TcpConnectionEstatsSndCong TCP_ESTATS_SND_CONG_RW_v0
TcpConnectionEstatsPath TCP_ESTATS_PATH_RW_v0
TcpConnectionEstatsSendBuff TCP_ESTATS_SEND_BUFF_RW_v0
TcpConnectionEstatsRec TCP_ESTATS_REC_RW_v0
TcpConnectionEstatsObsRec TCP_ESTATS_OBS_REC_RW_v0
TcpConnectionEstatsBandwidth TCP_ESTATS_BANDWIDTH_RW_v0
TcpConnectionEstatsFineRtt TCP_ESTATS_FINE_RTT_RW_v0
 

Parameter Offset saat ini tidak digunakan dan harus diatur ke 0. Kemungkinan struktur yang ditunjukkan oleh parameter Rw semuanya memiliki satu anggota kecuali untuk struktur TCP_ESTATS_BANDWIDTH_RW_v0 . Ketika parameter EstatsType diatur ke TcpConnectionEstatsBandwidth, struktur TCP_ESTATS_BANDWIDTH_RW_v0 yang ditunjukkan oleh parameter Rw harus mengatur kedua anggota struktur ke nilai pilihan dalam satu panggilan ke fungsi SetPerTcpConnectionEStats .

Jika parameter RwSize diatur ke 0, fungsi SetPerTcpConnectionEStats mengembalikan NO_ERROR dan tidak membuat perubahan pada status statistik yang diperluas.

Fungsi GetTcpTable digunakan untuk mengambil tabel koneksi TCP IPv4 di komputer lokal. Fungsi ini mengembalikan struktur MIB_TCPTABLE yang berisi array entri MIB_TCPROW . Parameter Baris yang diteruskan ke fungsi SetPerTcpConnectionEStats harus menjadi entri untuk koneksi TCP IPv4 yang ada.

Setelah statistik yang diperluas diaktifkan pada koneksi TCP untuk IPv4, aplikasi memanggil fungsi GetPerTcpConnectionEStats untuk mengambil statistik yang diperluas pada koneksi TCP.

Fungsi GetPerTcpConnectionEStats dirancang untuk menggunakan TCP untuk mendiagnosis masalah performa di jaringan dan aplikasi. Jika aplikasi berbasis jaringan berkinerja buruk, TCP dapat menentukan apakah hambatan ada di pengirim, penerima, atau jaringan itu sendiri. Jika hambatan berada dalam jaringan, TCP dapat memberikan informasi spesifik tentang sifatnya.

Untuk informasi tentang statistik TCP yang diperluas pada koneksi IPv6, lihat fungsi GetPerTcp6ConnectionEStats dan SetPerTcp6ConnectionEStats .

Fungsi SetPerTcpConnectionEStats hanya dapat dipanggil oleh pengguna yang masuk sebagai anggota grup Administrator. Jika SetPerTcpConnectionEStats dipanggil oleh pengguna yang bukan anggota grup Administrator, panggilan fungsi akan gagal dan ERROR_ACCESS_DENIED dikembalikan. Fungsi ini juga dapat gagal karena kontrol akun pengguna (UAC) pada Windows Vista dan Windows Server 2008. Jika aplikasi yang berisi fungsi ini dijalankan oleh pengguna yang masuk sebagai anggota grup Administrator selain Administrator bawaan, panggilan ini akan gagal kecuali aplikasi telah ditandai dalam file manifes dengan requestedExecutionLevel diatur ke requireAdministrator. Jika aplikasi pada Windows Vista atau Windows Server 2008 tidak memiliki file manifes ini, pengguna yang masuk sebagai anggota grup Administrator selain Administrator bawaan kemudian harus menjalankan aplikasi dalam shell yang ditingkatkan sebagai Administrator bawaan (administrator RunAs) agar fungsi ini berhasil.

Di versi Windows sebelum Windows 10, versi 1709 (Fall Creators Update), Anda dapat menggunakan SetPerTcpConnectionEStats untuk menonaktifkan dan mengaktifkan kembali statistik pada koneksi, menyebabkan penghitung statistik apa pun diatur ulang ke nol. Pada Windows 10, versi 1709 (Fall Creators Update), beberapa penghitung statistik tidak mengatur ulang saat statistik dinonaktifkan dan diaktifkan kembali. Selain itu, jika dua aplikasi memantau statistik untuk koneksi yang sama, maka satu aplikasi dapat membingungkan yang lain dengan menonaktifkan statistik. Untuk alasan ini, sebaiknya aplikasi Anda menahan diri dari menonaktifkan statistik pada koneksi. Untuk mendeteksi perubahan dari waktu ke waktu, Anda harus menyimpan nilai penghitung yang dibaca oleh panggilan sebelumnya ke GetPerTcpConnectionEStats, dan menguranginya dari yang dibaca oleh panggilan berikutnya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header iphlpapi.h
Pustaka Iphlpapi.lib
DLL Iphlpapi.dll

Lihat juga

GetPerTcp6ConnectionEStats

GetPerTcpConnectionEStats

GetTcpTable

MIB_TCPROW

SetPerTcp6ConnectionEStats

TCP_BOOLEAN_OPTIONAL

TCP_ESTATS_BANDWIDTH_RW_v0

TCP_ESTATS_DATA_RW_v0

TCP_ESTATS_FINE_RTT_RW_v0

TCP_ESTATS_OBS_REC_RW_v0

TCP_ESTATS_PATH_RW_v0

TCP_ESTATS_REC_RW_v0

TCP_ESTATS_SEND_BUFF_RW_v0

TCP_ESTATS_SND_CONG_RW_v0

TCP_ESTATS_TYPE