Fungsi GetPrinterDataEx

Fungsi GetPrinterDataEx mengambil data konfigurasi untuk printer atau server cetak yang ditentukan. GetPrinterDataEx dapat mengambil nilai yang disimpan fungsi SetPrinterData . Selain itu, GetPrinterDataEx dapat mengambil nilai yang disimpan fungsi SetPrinterDataEx di bawah kunci tertentu.

Sintaks

DWORD GetPrinterDataEx(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _In_  LPCTSTR pValueName,
  _Out_ LPDWORD pType,
  _Out_ LPBYTE  pData,
  _In_  DWORD   nSize,
  _Out_ LPDWORD pcbNeeded
);

Parameter

hPrinter [in]

Handel ke printer atau server cetak yang fungsinya mengambil data konfigurasi. Gunakan fungsi OpenPrinter, OpenPrinter2, atau AddPrinter untuk mengambil handel printer.

pKeyName [in]

Penunjuk ke string yang dihentikan null yang menentukan kunci yang berisi nilai yang akan diambil. Gunakan karakter garis miring terbalik ( \ ) sebagai pemisah untuk menentukan jalur yang memiliki satu atau beberapa subkunci.

Jika hPrinter adalah handel ke printer dan pKeyName adalah NULL atau string kosong, GetPrinterDataEx mengembalikan ERROR_INVALID_PARAMETER.

Jika hPrinter adalah handel ke server cetak, pKeyName diabaikan.

pValueName [in]

Penunjuk ke string yang dihentikan null yang mengidentifikasi data yang akan diambil.

Untuk printer, string ini menentukan nama nilai di bawah kunci pKeyName .

Untuk server cetak, string ini adalah salah satu string yang telah ditentukan sebelumnya yang tercantum di bagian Keterangan berikut.

pType [out]

Penunjuk ke variabel yang menerima jenis data yang disimpan dalam nilai. Fungsi mengembalikan jenis yang ditentukan dalam panggilan SetPrinterDataEx saat data disimpan. Parameter ini bisa NULL jika Anda tidak memerlukan informasi. GetPrinterDataEx meneruskan pType sebagai parameter lpdwType dari panggilan fungsi RegQueryValueEx .

pData [out]

Penunjuk ke buffer yang menerima data konfigurasi.

nSize [in]

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

pcbNeeded [out]

Penunjuk ke variabel yang menerima ukuran, dalam byte, dari data konfigurasi. Jika ukuran buffer yang ditentukan oleh nSize terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA, dan pcbNeeded menunjukkan ukuran buffer yang diperlukan.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah nilai kesalahan.

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.

GetPrinterDataEx mengambil data konfigurasi printer yang diatur oleh fungsi SetPrinterDataEx dan SetPrinterData .

Memanggil GetPrinterDataEx dengan parameter pKeyName yang diatur ke "PrinterDriverData" setara dengan memanggil fungsi GetPrinterData .

Jika hPrinter adalah handel ke server cetak, pValueName dapat menentukan salah satu nilai yang telah ditentukan sebelumnya berikut ini.

Nilai Komentar
SPLREG_ALLOW_USER_MANAGEFORMS Windows XP dengan Paket Layanan 2 (SP2) dan yang lebih baru
Windows Server 2003 dengan Paket Layanan 1 (SP1) dan yang lebih baru
SPLREG_ARCHITECTURE
SPLREG_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_DNS_MACHINE_NAME
SPLREG_DS_PRESENT Saat berhasil dikembalikan, pData berisi 0x0001 jika komputer berada di domain DS, 0 jika tidak.
SPLREG_DS_PRESENT_FOR_USER Saat pengembalian berhasil, pData berisi 0x0001 jika pengguna masuk ke domain DS, 0 jika tidak.
SPLREG_EVENT_LOG
SPLREG_MAJOR_VERSION
SPLREG_MINOR_VERSION
SPLREG_NET_POPUP Tidak didukung di Windows Server 2003 dan yang lebih baru
SPLREG_NET_POPUP_TO_COMPUTER Saat berhasil dikembalikan, pData berisi 1 jika pemberitahuan pekerjaan harus dikirim ke komputer klien, atau 0 jika pemberitahuan pekerjaan akan dikirim ke pengguna.
Tidak didukung di Windows Server 2003 dan yang lebih baru
SPLREG_OS_VERSION Windows XP dan yang lebih baru
SPLREG_OS_VERSIONEX
SPLREG_PORT_THREAD_PRIORITY_DEFAULT
SPLREG_PORT_THREAD_PRIORITY
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS Windows 7 dan yang lebih baru
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE Windows 7 dan yang lebih baru
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE Windows 7 dan yang lebih baru
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT Windows 7 dan yang lebih baru
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY Windows 7 dan yang lebih baru
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY Windows 7 dan yang lebih baru
SPLREG_REMOTE_FAX Saat pengembalian berhasil, pData berisi 0x0001 jika layanan FAX mendukung klien jarak jauh, 0 jika tidak.
SPLREG_RETRY_POPUP Saat berhasil dikembalikan, pData berisi 1 jika server diatur untuk mencoba kembali jendela pop-up untuk semua pekerjaan, atau 0 jika server tidak mencoba kembali jendela pop-up untuk semua pekerjaan.
Tidak didukung di Windows Server 2003 dan yang lebih baru
SPLREG_SCHEDULER_THREAD_PRIORITY
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT
SPLREG_WEBSHAREMGMT Windows Server 2003 dan yang lebih baru

Nilai pValueName berikut menunjukkan perilaku pencetakan kumpulan saat terjadi kesalahan.

Nilai Komentar
SPLREG_RESTART_JOB_ON_POOL_ERROR Nilai pData menunjukkan waktu, dalam detik, ketika pekerjaan dimulai ulang pada port lain setelah kesalahan terjadi. Pengaturan ini digunakan dengan SPLREG_RESTART_JOB_ON_POOL_ENABLED.
SPLREG_RESTART_JOB_ON_POOL_ENABLED Nilai bukan nol dalam pData menunjukkan bahwa SPLREG_RESTART_JOB_ON_POOL_ERROR diaktifkan.

Waktu yang ditentukan dalam SPLREG_RESTART_JOB_ON_POOL_ERROR adalah waktu minimum. Waktu aktual bisa lebih lama, tergantung pada pengaturan monitor port berikut, yang merupakan nilai registri di bawah kunci registri ini:

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\<MonitorName>\Ports

Panggil fungsi RegQueryValueEx untuk mengkueri nilai-nilai ini.

Pengaturan pemantau port Jenis Data Makna
StatusUpdateEnabled REG_DWORD Jika nilai bukan nol, memungkinkan pemantau port memperbarui penampung dengan status port.
StatusUpdateInterval REG_DWORD Menentukan interval, dalam menit, ketika monitor port memperbarui penampung dengan status port.

Jika pKeyName adalah salah satu kunci Layanan Direktori (DS) yang telah ditentukan sebelumnya (lihat SetPrinter) dan pValueName berisi koma (','), maka bagian pValueName sebelum koma adalah nama nilai dan bagian pValueName di sebelah kanan koma adalah OID Properti DS. Subkunci bernama OID dibuat dan nilai baru yang terdiri dari nama nilai dan OID dimasukkan di bawah kunci OID. SetPrinterDataEx juga menambahkan nama nilai dan data di bawah kunci DS.

Di Windows 7 dan versi Windows yang lebih baru, tugas cetak yang dikirim ke server cetak dirender pada klien secara default. Konfigurasi penyajian sisi klien untuk printer dapat dibaca dengan mengatur pKeyName ke "PrinterDriverData" dan pValueName ke nilai pengaturan dalam tabel berikut.

Pengaturan Jenis data Deskripsi
EMFDespoolingSetting REG_DWORD Nilai 0, atau jika nilai ini tidak ada di registri, memungkinkan penyajian sisi klien default dari pekerjaan cetak.
Nilai 1 menonaktifkan penyajian pekerjaan cetak sisi klien.
ForceClientSideRendering REG_DWORD Nilai 0, atau jika nilai ini tidak ada di registri, akan menyebabkan pekerjaan cetak dirender pada klien. Jika pekerjaan cetak tidak dapat dirender pada klien, tugas akan dirender di server. Jika tugas cetak tidak dapat dirender pada server, maka akan gagal.
Nilai 1 akan merender pekerjaan cetak pada klien. Jika pekerjaan cetak tidak dapat dirender pada klien, itu akan gagal.

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
GetPrinterDataExW (Unicode) dan GetPrinterDataExA (ANSI)

Lihat juga

Pencetakan

Cetak Fungsi API Spooler

OpenPrinter

SetPrinterDataEx