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 |
---|---|
|
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). |
|
Buffer pengguna yang disediakan tidak valid untuk operasi yang diminta. Kesalahan ini dikembalikan jika parameter Baris adalah penunjuk NULL dan parameter RwSize bukan nol. |
|
Parameter salah. Kesalahan ini dikembalikan jika parameter Baris adalah penunjuk NULL . |
|
Entri yang diminta ini tidak ditemukan. Kesalahan ini dikembalikan jika koneksi TCP yang ditentukan dalam parameter Baris tidak dapat ditemukan. |
|
Permintaan tidak didukung. Kesalahan ini dikembalikan jika parameter RwVersion atau Offset tidak diatur ke 0. |
|
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 |