Fungsi GetExtendedTcpTable (iphlpapi.h)

Fungsi GetExtendedTcpTable mengambil tabel yang berisi daftar titik akhir TCP yang tersedia untuk aplikasi.

Sintaks

IPHLPAPI_DLL_LINKAGE DWORD GetExtendedTcpTable(
  [out]     PVOID           pTcpTable,
  [in, out] PDWORD          pdwSize,
  [in]      BOOL            bOrder,
  [in]      ULONG           ulAf,
  [in]      TCP_TABLE_CLASS TableClass,
  [in]      ULONG           Reserved
);

Parameter

[out] pTcpTable

Penunjuk ke struktur tabel yang berisi titik akhir TCP yang difilter yang tersedia untuk aplikasi. Untuk informasi tentang cara menentukan jenis tabel yang dikembalikan berdasarkan kombinasi parameter input tertentu, lihat bagian Keterangan nanti dalam dokumen ini.

[in, out] pdwSize

Perkiraan ukuran struktur yang dikembalikan dalam pTcpTable, dalam byte. Jika nilai ini diatur terlalu kecil, ERROR_INSUFFICIENT_BUFFER dikembalikan oleh fungsi ini, dan bidang ini akan berisi ukuran struktur yang benar.

[in] bOrder

Nilai yang menentukan apakah tabel koneksi TCP harus diurutkan. Jika parameter ini diatur ke TRUE, titik akhir TCP dalam tabel diurutkan dalam urutan naik, dimulai dengan alamat IP lokal terendah. Jika parameter ini diatur ke FALSE, titik akhir TCP dalam tabel muncul dalam urutan pengambilannya.

Nilai berikut dibandingkan (seperti yang tercantum) saat mengurutkan titik akhir TCP:

  1. Alamat IP lokal
  2. ID cakupan lokal (berlaku saat parameter ulAf diatur ke AF_INET6)
  3. Port TCP lokal
  4. Alamat IP jarak jauh
  5. ID cakupan jarak jauh (berlaku saat parameter ulAf diatur ke AF_INET6)
  6. Port TCP jarak jauh

[in] ulAf

Versi IP yang digunakan oleh titik akhir TCP.

Nilai Makna
AF_INET
IPv4 digunakan.
AF_INET6
IPv6 digunakan.

[in] TableClass

Jenis struktur tabel TCP yang akan diambil. Parameter ini dapat menjadi salah satu nilai dari enumerasi TCP_TABLE_CLASS .

Pada Windows SDK yang dirilis untuk Windows Vista dan yang lebih baru, organisasi file header telah berubah dan enumerasi TCP_TABLE_CLASS didefinisikan dalam file header Iprtrmib.h , bukan dalam file header Iphlpapi.h .

Nilai enumerasi TCP_TABLE_CLASS dikombinasikan dengan nilai parameter ulAf untuk menentukan informasi TCP yang diperluas untuk diambil.

[in] Reserved

Dicadangkan. Nilai ini harus berupa nol.

Nilai kembali

Jika panggilan berhasil, nilai NO_ERROR dikembalikan.

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

Menampilkan kode Deskripsi
ERROR_INSUFFICIENT_BUFFER
Jumlah ruang yang tidak cukup dialokasikan untuk tabel. Ukuran tabel dikembalikan dalam parameter pdwSize , dan harus digunakan dalam panggilan berikutnya ke fungsi ini agar berhasil mengambil tabel.

Kesalahan ini juga dikembalikan jika parameter pTcpTable adalah NULL.

ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika parameter TableClass berisi nilai yang tidak ditentukan dalam enumerasi TCP_TABLE_CLASS .

Keterangan

Jenis tabel yang dikembalikan oleh fungsi ini tergantung pada kombinasi spesifik parameter ulAf dan parameter TableClass .

Saat parameter ulAf diatur ke AF_INET, tabel berikut menunjukkan jenis tabel TCP untuk diambil dalam struktur yang ditunjukkan oleh parameter pTcpTable untuk setiap nilai TableClass yang mungkin.

Nilai TableClass Struktur pTcpTable
TCP_TABLE_BASIC_ALL MIB_TCPTABLE
TCP_TABLE_BASIC_CONNECTIONS MIB_TCPTABLE
TCP_TABLE_BASIC_LISTENER MIB_TCPTABLE
TCP_TABLE_OWNER_MODULE_ALL MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER MIB_TCPTABLE_OWNER_PID
 

Saat parameter ulAf diatur ke AF_INET6, tabel berikut menunjukkan jenis tabel TCP untuk diambil dalam struktur yang ditunjukkan oleh parameter pTcpTable untuk setiap nilai TableClass yang mungkin.

Nilai TableClass Struktur pTcpTable
TCP_TABLE_OWNER_MODULE_ALL MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER MIB_TCP6TABLE_OWNER_PID
 

Fungsi GetExtendedTcpTable yang dipanggil dengan parameter ulAf diatur ke AF_INET6 dan TableClass diatur ke TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS, atau TCP_TABLE_BASIC_ALL tidak didukung dan mengembalikan ERROR_NOT_SUPPORTED.

Pada Windows SDK yang dirilis untuk Windows Vista dan yang lebih baru, organisasi file header telah berubah. Berbagai struktur MIB_TCPTABLE didefinisikan dalam file header Tcpmib.h , bukan dalam file header Iprtrmib.h . Perhatikan bahwa file header Tcpmib.h secara otomatis disertakan dalam Iprtrmib.h, yang secara otomatis disertakan dalam file header Iphlpapi.h . File header Tcpmib.h dan Iprtrmib.h tidak boleh digunakan secara langsung.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista, Windows XP dengan SP2 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008, Windows Server 2003 dengan SP1 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header iphlpapi.h
Pustaka Iphlpapi.lib
DLL Iphlpapi.dll

Lihat juga

MIB_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS