Fungsi GetPrinterData
Fungsi GetPrinterData mengambil data konfigurasi untuk printer atau server cetak yang ditentukan.
Di Windows 2000 dan versi Windows yang lebih baru, memanggil GetPrinterData setara dengan memanggil GetPrinterDataEx dengan parameter pKeyName diatur ke "PrinterDriverData".
Sintaks
DWORD GetPrinterData(
_In_ HANDLE hPrinter,
_In_ LPTSTR 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.
-
pValueName [in]
-
Penunjuk ke string yang dihentikan null yang mengidentifikasi data yang akan diambil.
Untuk printer, string ini adalah nama nilai registri di bawah kunci "PrinterDriverData" printer di registri.
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 nilai yang menunjukkan jenis data yang diambil dalam pData. Fungsi mengembalikan jenis yang ditentukan dalam panggilan SetPrinterData atau SetPrinterDataEx yang menyimpan data. Atur parameter ini ke NULL jika Anda tidak memerlukan jenis data.
-
pData [out]
-
Penunjuk ke buffer yang menerima data konfigurasi.
-
nSize [in]
-
Ukuran, dalam byte, dari buffer yang dituju 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.
GetPrinterData mengambil data konfigurasi printer yang diatur oleh fungsi SetPrinterDataEx atau SetPrinterData .
GetPrinterData mungkin memicu panggilan Windows ke GetPrinterDataFromPort, yang mungkin menulis ke registri. Jika ya, efek samping dapat terjadi, seperti memicu pembaruan atau meningkatkan ID peristiwa printer 20 di klien, jika printer dibagikan dalam jaringan.
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. |
Di Windows 7 dan versi Windows yang lebih baru, tugas cetak yang dikirim ke server cetak dirender pada klien secara default. Nilai berikut mengonfigurasi penyajian sisi klien dari pekerjaan cetak dan dapat dibaca jika Anda mengatur nilai berikut di pValueName.
Pengaturan | Jenis data | Deskripsi |
---|---|---|
EMFDespoolingSetting | REG_DWORD | Nilai 0, atau jika nilai ini tidak ada di registri, memungkinkan penyajian pekerjaan cetak sisi klien default. 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 tugas cetak tidak dapat dirender pada klien, tugas tersebut akan dirender di server. Jika tugas cetak tidak dapat dirender pada server, maka akan gagal. Nilai 1 akan merender pekerjaan cetak pada klien. Jika tugas 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 |
|
Pustaka |
|
DLL |
|
Nama Unicode dan ANSI |
GetPrinterDataW (Unicode) dan GetPrinterDataA (ANSI) |