Fungsi DrvEnablePDEV (winddi.h)
Fungsi DrvEnablePDEV mengembalikan deskripsi karakteristik perangkat fisik ke GDI.
Sintaks
DHPDEV DrvEnablePDEV(
[in] DEVMODEW *pdm,
[in] LPWSTR pwszLogAddress,
ULONG cPat,
[in, optional] HSURF *phsurfPatterns,
ULONG cjCaps,
[out] ULONG *pdevcaps,
ULONG cjDevInfo,
[out] DEVINFO *pdi,
HDEV hdev,
[in] LPWSTR pwszDeviceName,
HANDLE hDriver
);
Parameter
[in] pdm
Penunjuk ke struktur DEVMODEW yang berisi data driver.
Untuk driver yang mendukung Windows NT 4.0, DrvEnablePDEV harus mengembalikan mode default perangkat keras ketika GDI memanggilnya dengan anggota DEVMODEW berikut yang diatur ke nol: dmBitsPerPel, dmPelsWidth, dmPelsHeight, dan dmDisplayFrequency.
[in] pwszLogAddress
Untuk driver printer, menunjuk ke string alamat logis yang merupakan nama pengguna untuk lokasi tempat driver menulis. Contohnya termasuk "LPT1" atau "Printer Saya."
Driver tampilan harus mengabaikan parameter ini.
cPat
Untuk driver printer, menentukan jumlah handel permukaan dalam buffer yang diarahkan oleh phsurfPatterns. Driver tidak dapat mengakses memori di luar akhir buffer.
Driver tampilan harus mengabaikan parameter ini.
[in, optional] phsurfPatterns
Driver tampilan harus mengabaikan parameter ini.
Untuk pengandar pencetak, tunjuk ke buffer yang akan diisi driver dengan handel permukaan yang mewakili pola isian standar. Pola berikut harus ditentukan secara berurutan:
Pola | Deskripsi |
---|---|
HS_HORIZONTAL | Menetas horizontal. |
HS_VERTICAL | Menetas vertikal. |
HS_FDIAGONAL | 45 derajat menetas ke atas (kiri ke kanan). |
HS_BDIAGONAL | 45 derajat menetas ke bawah (kiri ke kanan). |
HS_CROSS | Penetasan silang horizontal dan vertikal. |
HS_DIAGCROSS | 45 derajat crosshatch. |
Masing-masing permukaan ini harus berupa bitmap GDI monokrom (1 bit per piksel) untuk perangkat raster. Driver perangkat harus memilih pola yang akan terlihat paling seperti pola standar ketika ditulis pada permukaan perangkat.
GDI tidak pernah diharuskan untuk menggunakan kuas ini dalam rutinitas dukungan untuk perangkat vektor. Oleh karena itu, permukaan dapat menjadi permukaan yang didukung perangkat yang dikenali DrvRealizeBrush sebagai pola standar.
cjCaps
Menentukan ukuran buffer yang diacu oleh pdevcaps. Driver tidak boleh mengakses memori di luar akhir buffer.
[out] pdevcaps
Arahkan ke struktur GDIINFO yang akan digunakan untuk menggambarkan kemampuan perangkat. GDI menginisialisasi struktur ini memanggil DrvEnablePDEV.
cjDevInfo
Menentukan jumlah byte dalam struktur DEVINFO yang diacu oleh pdi. Driver harus memodifikasi tidak lebih dari jumlah byte ini di DEVINFO.
[out] pdi
Arahkan ke struktur DEVINFO , yang menjelaskan driver dan perangkat fisik. Pengemudi hanya boleh mengubah anggota yang dipahaminya. GDI mengisi struktur ini dengan nol sebelum panggilan ke DrvEnablePDEV.
hdev
Handel yang disediakan GDI ke perangkat. Handel ini harus digunakan sebagai input ke beberapa panggilan balik GDI, seperti EngGetDriverName.
[in] pwszDeviceName
Penunjuk ke string yang dihentikan null yang merupakan nama perangkat yang dapat dibaca pengguna.
hDriver
Menangani ke perangkat output. Untuk pengandar tampilan, ini adalah handel perangkat tampilan. Untuk pengandar pencetak, parameter ini harus digunakan sebagai handel ke pencetak dalam panggilan ke penampung.
Mengembalikan nilai
Nilai yang dikembalikan adalah handel ke PDEV yang mengidentifikasi perangkat yang diaktifkan jika fungsi berhasil. Artinya, DrvEnablePDEV mengembalikan handel ke informasi instans perangkat pribadi yang ditentukan driver setelah berhasil. Jika tidak, ia mengembalikan NULL.
Keterangan
Driver perangkat grafis mungkin mendukung beberapa perangkat fisik yang terpasang pada alamat logis yang berbeda. Driver juga harus mendukung penggunaan simultan permukaan gambar yang berbeda.
Tujuan DrvEnablePDEV adalah sebagai berikut:
- Untuk memberi tahu GDI tentang karakteristik fisik perangkat.
- Untuk membuat struktur PDEV privat yang menjelaskan instans perangkat saat ini (berdasarkan struktur DEVMODE dan nama perangkat yang diterima).
Satu perangkat logis dapat mengelola beberapa PDEV yang dapat dibedakan dengan yang berikut:
- Jenis perangkat keras -- Driver perangkat tunggal mungkin mendukung "LaserWhiz," "LaserWhiz II," dan "LaserWhiz Super."
- Alamat logis -- Satu driver perangkat dapat mendukung printer yang terpasang pada "LPT1," "COM2," "\SERVER1\PSLAZER," dan sebagainya. Driver tampilan yang dapat mendukung lebih dari satu tampilan VGA secara bersamaan mungkin membedakannya sesuai dengan nomor port; misalnya, 0x3CE atau 0x2CE.
- Permukaan -- Driver printer dapat memproses dua pekerjaan cetak secara bersamaan. Dua permukaan mewakili dua halaman yang akan dicetak. Demikian pula, driver perangkat tampilan mungkin mendukung dua desktop pada perangkat yang sama.
Jika permukaan perangkat memerlukan bitmap untuk dialokasikan, alokasi ini tidak perlu dilakukan sampai diperlukan. Meskipun aplikasi sering meminta informasi perangkat jauh sebelum benar-benar menulis ke perangkat, menunggu untuk mengalokasikan sumber daya, seperti bitmap besar, dapat menghemat memori.
GDI menginisialisasi buffer yang diacu oleh phsurfPatterns sebelum memanggil fungsi ini.
DrvEnablePDEV diperlukan untuk driver grafis.
Persyaratan
Target Platform | Desktop |
Header | winddi.h (termasuk Winddi.h) |