Fungsi GetPerTcpConnectionEStats (iphlpapi.h)
Fungsi GetPerTcpConnectionEStats mengambil statistik yang diperluas untuk koneksi TCP IPv4.
Sintaks
IPHLPAPI_DLL_LINKAGE ULONG GetPerTcpConnectionEStats(
PMIB_TCPROW Row,
TCP_ESTATS_TYPE EstatsType,
[out] PUCHAR Rw,
ULONG RwVersion,
ULONG RwSize,
[out] PUCHAR Ros,
ULONG RosVersion,
ULONG RosSize,
[out] PUCHAR Rod,
ULONG RodVersion,
ULONG RodSize
);
Parameter
Row
Penunjuk ke struktur MIB_TCPROW untuk koneksi TCP IPv4.
EstatsType
Jenis statistik yang diperluas untuk TCP yang diminta. Parameter ini menentukan data dan format informasi yang dikembalikan dalam parameter Rw, Rod, dan Ros jika panggilan berhasil.
Parameter ini dapat menjadi salah satu nilai dari jenis enumerasi TCP_ESTATS_TYPE yang ditentukan dalam file header Tcpestats.h .
Nilai | Makna |
---|---|
|
Nilai ini meminta informasi pertukaran SYN untuk koneksi TCP.
Hanya informasi statis baca-saja yang tersedia untuk nilai enumerasi ini. Jika parameter Ros bukan NULL dan fungsi berhasil, buffer yang diacu oleh parameter Ros harus berisi struktur TCP_ESTATS_SYN_OPTS_ROS_v0 . |
|
Nilai ini meminta informasi transfer data yang diperluas untuk koneksi TCP.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_DATA_RW_v0 . Jika informasi transfer data yang diperluas diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Rod harus berisi struktur TCP_ESTATS_DATA_ROD_v0 . |
|
Nilai ini meminta kemacetan pengirim untuk koneksi TCP.
Ketiga jenis informasi (informasi statis baca-saja, dinamis baca-saja, dan baca/tulis) tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_SND_CONG_RW_v0 . Jika parameter Ros bukan NULL dan fungsi berhasil, buffer yang diacu oleh parameter Ros harus berisi struktur TCP_ESTATS_SND_CONG_ROS_v0 . Jika informasi kemacetan pengirim diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Batang harus berisi struktur TCP_ESTATS_SND_CONG_ROD_v0 . |
|
Nilai ini meminta informasi pengukuran jalur yang diperluas untuk koneksi TCP.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_PATH_RW_v0 . Jika informasi pengukuran jalur yang diperluas diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Batang harus berisi struktur TCP_ESTATS_PATH_ROD_v0 . |
|
Nilai ini meminta informasi antrean output yang diperluas untuk koneksi TCP.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_SEND_BUFF_RW_v0 . Jika informasi antrean output yang diperluas diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Rod harus berisi struktur TCP_ESTATS_SEND_BUFF_ROD_v0 . |
|
Nilai ini meminta informasi penerima lokal yang diperluas untuk koneksi TCP.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_REC_RW_v0 . Jika informasi penerima lokal yang diperluas diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Batang harus berisi struktur TCP_ESTATS_REC_ROD_v0 . |
|
Nilai ini meminta informasi penerima jarak jauh yang diperluas untuk koneksi TCP.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_OBS_REC_RW_v0 . Jika informasi penerima jarak jauh yang diperluas diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Rod harus berisi struktur TCP_ESTATS_OBS_REC_ROD_v0 . |
|
Nilai ini meminta statistik estimasi bandwidth untuk koneksi TCP pada bandwidth.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_BANDWIDTH_RW_v0 . Jika statistik estimasi bandwidth diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Rod harus berisi struktur TCP_ESTATS_BANDWIDTH_ROD_v0 . |
|
Nilai ini meminta statistik estimasi waktu pulang pergi (RTT) yang terperinci untuk koneksi TCP.
Hanya informasi dinamis baca-saja dan informasi baca/tulis yang tersedia untuk nilai enumerasi ini. Jika parameter Rw bukan NULL dan fungsi berhasil, buffer yang diarahkan oleh parameter Rw harus berisi struktur TCP_ESTATS_FINE_RTT_RW_v0 . Jika statistik estimasi RTT terperinci diaktifkan untuk koneksi TCP ini, parameter Rod bukan NULL, dan fungsi berhasil, buffer yang ditunjukkan oleh parameter Batang harus berisi struktur TCP_ESTATS_FINE_RTT_ROD_v0 . |
[out] Rw
Penunjuk ke buffer untuk menerima informasi baca/tulis. Parameter ini mungkin penunjuk NULL jika aplikasi tidak ingin mengambil informasi baca/tulis untuk koneksi TCP.
RwVersion
Versi informasi baca/tulis yang diminta. Nilai yang didukung saat ini adalah versi nol.
RwSize
Ukuran, dalam byte, dari buffer yang diarahkan oleh parameter Rw .
[out] Ros
Penunjuk ke buffer untuk menerima informasi statis baca-saja. Parameter ini mungkin penunjuk NULL jika aplikasi tidak ingin mengambil informasi statis baca-saja untuk koneksi TCP.
RosVersion
Versi informasi statis baca-saja yang diminta. Nilai yang didukung saat ini adalah versi nol.
RosSize
Ukuran, dalam byte, dari buffer yang diacu oleh parameter Ros .
[out] Rod
Penunjuk ke buffer untuk menerima informasi dinamis baca-saja. Parameter ini mungkin penunjuk NULL jika aplikasi tidak ingin mengambil informasi dinamis baca-saja untuk koneksi TCP.
RodVersion
Versi informasi dinamis baca-saja yang diminta. Nilai yang didukung saat ini adalah versi nol.
RodSize
Ukuran, dalam byte, dari buffer yang diacu oleh parameter Rod .
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 |
---|---|
|
Buffer yang diteruskan ke fungsi terlalu kecil. Kesalahan ini dikembalikan jika buffer yang diarahkan oleh parameter Rw, Ros, atau Rod tidak cukup besar untuk menerima data. Kesalahan ini juga mengembalikan jika salah satu buffer yang diberikan menunjuk ke parameter Rw, Ros, atau Rod adalah NULL, tetapi panjangnya ditentukan dalam RwSize, RosSize, atau RodSize terkait.
Nilai kesalahan ini dikembalikan pada Windows Vista dan Windows Server 2008. |
|
Parameter salah. Kesalahan ini dikembalikan jika parameter Baris adalah penunjuk NULL . |
|
Buffer pengguna yang disediakan tidak valid untuk operasi yang diminta. Kesalahan ini dikembalikan jika salah satu buffer yang diberikan menunjuk ke parameter Rw, Ros, atau Rod adalah NULL, tetapi panjangnya ditentukan dalam RwSize, RosSize, atau RodSize terkait. Akibatnya, kesalahan ini dikembalikan jika salah satu kondisi berikut terpenuhi:
Nilai kesalahan ini dikembalikan pada Windows 7 dan Windows Server 2008 R2. |
|
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, RosVersion, atau RodVersion tidak diatur ke nol. |
|
Gunakan FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan. |
Keterangan
Fungsi GetPerTcpConnectionEStats ditentukan pada Windows Vista dan yang lebih baru.
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.
Fungsi GetPerTcpConnectionEStats mengambil statistik yang diperluas untuk koneksi TCP IPv4 yang diteruskan dalam parameter Baris . Jenis statistik yang diperluas yang diambil ditentukan dalam parameter EstatsType . Statistik yang diperluas pada koneksi TCP ini sebelumnya harus diaktifkan oleh panggilan ke fungsi SetPerTcpConnectionEStats untuk semua nilai TCP_ESTATS_TYPE kecuali ketika TcpConnectionEstatsSynOpts diteruskan dalam parameter EstatsType .
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 GetPerTcpConnectionEStats harus menjadi entri untuk koneksi TCP IPv4 yang ada.
Satu-satunya versi statistik koneksi TCP yang saat ini didukung adalah versi nol. Jadi parameter RwVersion, RosVersion, dan RodVersion yang diteruskan ke GetPerTcpConnectionEStats harus diatur ke 0.
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 yang lebih baru. 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 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.
Pemanggil GetPerTcpConnectionEStats harus memeriksa bidang EnableCollection di struktur Rw yang dikembalikan, dan jika tidak TRUE
, pemanggil harus mengabaikan data dalam struct Ros dan Rod . Jika EnableCollection diatur ke FALSE
, maka data yang dikembalikan di Ros dan Rod tidak terdefinisi. Misalnya, satu kondisi di mana ini dapat terjadi adalah ketika Anda menggunakan GetPerTcpConnectionEStats untuk mengambil statistik yang diperluas untuk koneksi TCP IPv4, dan Anda sebelumnya telah memanggil SetPerTcpConnectionEStats untuk mengaktifkan statistik yang diperluas. Jika panggilan SetPerTcpConnectionEStats gagal, panggilan berikutnya ke GetPerTcpConnectionEStats akan mengembalikan data acak yang tidak berarti, dan bukan statistik TCP yang diperluas. Anda dapat mengamati contoh tersebut dengan menjalankan contoh di bawah ini sebagai administrator, dan sebagai pengguna normal.
Contoh
Untuk contoh kode, lihat bagian Contoh di topik fungsi GetPerTcp6ConnectionEStats .
Persyaratan
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 |