Fungsi AddPrinterDriverEx

Fungsi AddPrinterDriverEx menginstal driver printer lokal atau jarak jauh dan menautkan file konfigurasi, data, dan driver. Selain memiliki kemampuan AddPrinterDriver, addPrinterDriver juga memiliki opsi yang memungkinkan peningkatan ketat, penurunan tingkat yang ketat, penyalinan file yang lebih baru saja, dan penyalinan semua file (terlepas dari stempel waktu file).

Catatan

Menginstal pengandar pencetak tanpa paket pengandar tidak lagi disarankan. Gunakan InstallPrinterDriverFromPackage sebagai gantinya.

Sintaks

BOOL AddPrinterDriverEx(
  _In_    LPTSTR pName,
  _In_    DWORD  Level,
  _Inout_ LPBYTE pDriverInfo,
  _In_    DWORD  dwFileCopyFlags
);

Parameter

pName [in]

Penunjuk ke string yang dihentikan null yang menentukan nama server tempat driver harus diinstal. Jika parameter ini NULL, fungsi menginstal driver pada komputer lokal.

Level [in]

Versi struktur tempat pDriverInfo menunjuk. Nilai ini bisa 2, 3, 4, 6, atau 8.

pDriverInfo [masuk, keluar]

Penunjuk ke struktur yang berisi informasi pengandar printer. Ini bisa menjadi salah satu dari berikut ini.

Nilai Tingkat Struktur DRIVER_INFO_*
2
DRIVER_INFO_2
3
DRIVER_INFO_3
4
DRIVER_INFO_4
6
DRIVER_INFO_6
8
DRIVER_INFO_8

Jika anggota pEnvironment dari struktur yang ditunjukkan oleh pDriverInfo adalah NULL, fungsi menggunakan lingkungan pemanggil/klien saat ini, bukan lingkungan tujuan/server.

dwFileCopyFlags [in]

Opsi untuk menyalin file driver. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
APD_COPY_ALL_FILES
Tambahkan pengandar pencetak dan salin semua berkas dalam direktori pengandar-pencetak. Stempel waktu file diabaikan dengan opsi ini.
APD_COPY_FROM_DIRECTORY
Tambahkan pengandar pencetak menggunakan nama file yang sepenuhnya memenuhi syarat yang ditentukan dalam struktur DRIVER_INFO_6 . Bendera ini adalah ORed bersama dengan salah satu bendera salinan lainnya. Jika bendera ini diatur, AddPrinterDriverEx akan gagal jika file tidak ada di mana mereka ditentukan untuk ada oleh struktur DRIVER_INFO_6 . Berkas tak perlu disalin ke direktori pengandar-pencetak sistem. Lihat Komentar.
Windows 2000: Bendera ini tidak didukung.
APD_COPY_NEW_FILES
Tambahkan pengandar pencetak dan salin berkas dalam direktori pengandar-pencetak yang lebih baru dari berkas yang bersangkutan yang sedang digunakan. Bendera ini meniru perilaku AddPrinterDriver.
APD_STRICT_DOWNGRADE
Tambahkan pengandar pencetak hanya jika semua berkas dalam direktori pengandar-pencetak lebih lama dari berkas terkait yang sedang digunakan.
APD_STRICT_UPGRADE
Tambahkan pengandar pencetak hanya jika semua berkas dalam direktori pengandar-pencetak lebih baru dari berkas terkait yang sedang digunakan.

Mengembalikan nilai

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

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Jika driver printer diketahui mengalami masalah saat bekerja dengan sistem operasi, AddPrinterDriverEx akan gagal dengan salah satu kode kesalahan berikut:

Kode Kesalahan Makna
ERROR_PRINTER_DRIVER_BLOCKED Driver tidak bekerja pada sistem operasi.
ERROR_PRINTER_DRIVER_WARNED Driver tidak dapat diandalkan pada sistem operasi. Namun, jika APD_INSTALL_WARNED_DRIVER ditentukan, driver diinstal dan tidak ada peringatan yang diberikan.

Untuk informasi selengkapnya, lihat Keterangan.

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.

Pemanggil harus memiliki SeLoadDriverPrivilege.

Sebelum memanggil fungsi AddPrinterDriverEx , semua file yang diperlukan oleh driver harus disalin ke direktori driver printer sistem. Untuk mengambil nama direktori ini, panggil fungsi GetPrinterDriverDirectory .

Untuk menentukan driver printer mana yang saat ini diinstal, panggil fungsi EnumPrinterDrivers .

Jika pengandar pencetak berhasil ditambahkan, fungsi memanggil fungsi DrvDriverEvent (DRIVER_EVENT_INITIALIZE, Level, DRIVER_INFO_*, lparam) untuk memungkinkan driver melakukan inisialisasi apa pun yang diperlukan selama penginstalan driver printer. Untuk informasi selengkapnya tentang DrvDriverEvent, lihat Kit Pengembangan Driver (DDK) Microsoft Windows

Driver tidak boleh menggunakan panggilan UI selama panggilan ke DrvDriverEvent. Untuk melakukan pekerjaan terkait UI, alat penginstal harus menggunakan entri VendorSetup dalam file .inf printer atau, untuk perangkat Plug and Play, alat penginstal dapat menggunakan penginstal bersama khusus perangkat. Untuk informasi selengkapnya tentang VendorSetup, lihat DDK.

File yang dirujuk dalam struktur DRIVER_INFO_6 harus lokal ke komputer tempat panggilan dilakukan. Nama file dapat menjadi nama UNC selama nama UNC adalah komputer lokal.

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
AddPrinterDriverExW (Unicode) dan AddPrinterDriverExA (ANSI)

Lihat juga

Pencetakan

Cetak Fungsi API Spooler

AddPrinterDriver

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_6

DeletePrinterDriverEx

EnumPrinterDrivers

GetPrinterDriverDirectory