Bagikan melalui


Fungsi EnumPorts

Fungsi EnumPorts menghitung port yang tersedia untuk dicetak pada server tertentu.

Sintaks

BOOL EnumPorts(
  _In_  LPTSTR  pName,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPorts,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

Parameter

pName [in]

Penunjuk ke string yang dihentikan null yang menentukan nama server yang port printernya ingin Anda hitung.

Jika pNameadalah NULL, fungsi menghitung port printer komputer lokal.

Level [in]

Jenis informasi yang dikembalikan dalam buffer pPorts . Jika Level adalah 1, pPorts menerima array struktur PORT_INFO_1 . Jika Level adalah 2, pPorts menerima array struktur PORT_INFO_2 .

pPorts [out]

Penunjuk ke buffer yang menerima array struktur PORT_INFO_1 atau PORT_INFO_2 . Setiap struktur berisi data yang menjelaskan port printer yang tersedia. Buffer harus cukup besar untuk menyimpan string yang diacu oleh anggota struktur.

Untuk menentukan ukuran buffer yang diperlukan, panggil EnumPorts dengan cbBuf diatur ke nol. EnumPorts gagal, GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER, dan parameter pcbNeeded mengembalikan ukuran, dalam byte, dari buffer yang diperlukan untuk menyimpan array struktur dan datanya.

cbBuf [in]

Ukuran, dalam byte, dari buffer yang diacu oleh pPorts.

pcbNeeded [out]

Penunjuk ke variabel yang menerima jumlah byte yang disalin ke buffer pPorts . Jika buffer terlalu kecil, fungsi gagal dan variabel menerima jumlah byte yang diperlukan.

pcReturned [out]

Penunjuk ke variabel yang menerima jumlah struktur PORT_INFO_1 atau PORT_INFO_2 yang dikembalikan dalam buffer pPorts . Ini adalah jumlah porta printer yang tersedia pada server yang ditentukan.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Catatan

Ini adalah fungsi pemblokiran atau sinkron dan mungkin tidak segera dikembalikan. Seberapa cepat fungsi ini kembali tergantung pada faktor run-time seperti status jaringan, konfigurasi server cetak, dan faktor implementasi driver printer yang sulit diprediksi saat menulis aplikasi. Memanggil fungsi ini dari utas yang mengelola interaksi dengan antarmuka pengguna dapat membuat aplikasi tampak tidak responsif.

Fungsi EnumPorts dapat berhasil meskipun server yang ditentukan oleh pName tidak memiliki printer yang ditentukan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Winspool.h (termasuk Windows.h)
Pustaka
Winspool.lib
DLL
Winspool.drv
Nama Unicode dan ANSI
EnumPortsW (Unicode) dan EnumPortsA (ANSI)

Lihat juga

Pencetakan

Cetak Fungsi API Spooler

AddPort

DeletePort

PORT_INFO_1

PORT_INFO_2