Fungsi GetPrinter

Fungsi GetPrinter mengambil informasi tentang printer tertentu.

Sintaks

BOOL GetPrinter(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPrinter,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Parameter

hPrinter [in]

Handel ke printer yang fungsinya mengambil informasi. Gunakan fungsi OpenPrinter atau AddPrinter untuk mengambil handel printer.

Level [in]

Tingkat atau jenis struktur yang disimpan fungsi ke dalam buffer yang ditujukkan oleh pPrinter.

Nilai ini bisa 1, 2, 3, 4, 5, 6, 7, 8 atau 9.

pPrinter [keluar]

Penunjuk ke buffer yang menerima struktur yang berisi informasi tentang printer yang ditentukan. Buffer harus cukup besar untuk menerima struktur dan string apa pun atau data lain yang menjadi titik anggota struktur. Jika buffer terlalu kecil, parameter pcbNeeded mengembalikan ukuran buffer yang diperlukan.

Jenis struktur ditentukan oleh nilai Level.

Tingkat Struktur
1
Struktur PRINTER_INFO_1 yang berisi informasi printer umum.
2
Struktur PRINTER_INFO_2 yang berisi informasi terperinci tentang printer.
3
Struktur PRINTER_INFO_3 yang berisi informasi keamanan printer.
4
Struktur PRINTER_INFO_4 yang berisi informasi printer minimal, termasuk nama printer, nama server, dan apakah printer jarak jauh atau lokal.
5
Struktur PRINTER_INFO_5 yang berisi informasi printer seperti atribut printer dan pengaturan waktu habis.
6
Struktur PRINTER_INFO_6 yang menentukan nilai status printer.
7
Struktur PRINTER_INFO_7 yang menunjukkan apakah printer diterbitkan dalam layanan direktori.
8
Struktur PRINTER_INFO_8 yang menentukan pengaturan printer default global.
9
Struktur PRINTER_INFO_9 yang menentukan pengaturan printer default per pengguna.

cbBuf [in]

Ukuran, dalam byte, dari buffer yang ditujukkan oleh pPrinter.

pcbNeeded [out]

Penunjuk ke variabel yang diatur fungsi ke ukuran, dalam byte, dari informasi printer. Jika cbBuf lebih kecil dari nilai ini, GetPrinter gagal, dan nilai mewakili ukuran buffer yang diperlukan. Jika cbBuf sama dengan atau lebih besar dari nilai ini, GetPrinter berhasil, dan nilai mewakili jumlah byte yang disimpan dalam buffer.

Nilai kembali

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 kembali. 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.

Anggota pDevMode dalam struktur PRINTER_INFO_2, PRINTER_INFO_8, dan PRINTER_INFO_9 dapat berupa NULL. Ketika ini terjadi, pencetak tidak dapat digunakan sampai pengandar berhasil diinstal ulang.

Untuk struktur PRINTER_INFO_2 dan PRINTER_INFO_3 yang berisi penunjuk ke deskriptor keamanan, fungsi hanya mengambil komponen deskriptor keamanan yang memiliki izin untuk dibaca oleh penelepon. Untuk mengambil komponen deskriptor keamanan tertentu, Anda harus menentukan hak akses yang diperlukan saat Anda memanggil fungsi OpenPrinter untuk mengambil handel ke printer. Tabel berikut menunjukkan hak akses yang diperlukan untuk membaca berbagai komponen pendeskripsi keamanan.

Akses Ke Kanan Komponen Deskriptor Keamanan
READ_CONTROL
Pemilik
Grup utama
Daftar kontrol akses diskresi (DACL)
ACCESS_SYSTEM_SECURITY
Daftar kontrol akses sistem (SACL)

Jika Anda menentukan tingkat 7, anggota dwActionPRINTER_INFO_7 mengembalikan salah satu nilai berikut untuk menunjukkan apakah printer diterbitkan dalam layanan direktori.

nilai dwAction Makna
DSPRINT_PUBLISH Pencetak diterbitkan. Anggota pszObjectGUID berisi GUID objek antrean cetak layanan direktori yang terkait dengan printer.
DSPRINT_UNPUBLISH Pencetak tidak diterbitkan.
DSPRINT_PENDING Menunjukkan bahwa sistem sedang mencoba menyelesaikan operasi penerbitan atau pembukaan penerbitan. Jika panggilan SetPrinter gagal menerbitkan atau membatalkan penerbitan printer, sistem melakukan upaya lebih lanjut untuk menyelesaikan operasi di latar belakang.

Dimulai dengan Windows Vista, data printer yang dikembalikan oleh GetPrinter diambil dari cache lokal ketika hPrinter mengacu pada printer yang dihosting oleh server cetak dan setidaknya ada satu koneksi terbuka ke server cetak. Dalam semua konfigurasi lainnya, data printer dikueri dari server cetak.

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
GetPrinterW (Unicode) dan GetPrinterA (ANSI)

Lihat juga

Pencetakan

Cetak Fungsi API Spooler

AbortPrinter

TambahkanPrinter

ClosePrinter

DeletePrinter

EnumPrinters

PRINTER_INFO_1

PRINTER_INFO_2

PRINTER_INFO_3

PRINTER_INFO_4

PRINTER_INFO_5

PRINTER_INFO_7

PRINTER_INFO_8

PRINTER_INFO_9

OpenPrinter

SetPrinter