Fungsi DrvEscape (winddi.h)
Fungsi DrvEscape digunakan untuk mengambil informasi dari perangkat yang tidak tersedia di antarmuka driver perangkat independen perangkat; kueri tertentu bergantung pada nilai parameter iEsc .
Sintaks
ULONG DrvEscape(
[in] SURFOBJ *pso,
[in] ULONG iEsc,
[in] ULONG cjIn,
[in] PVOID pvIn,
[in] ULONG cjOut,
[out] PVOID pvOut
);
Parameter
[in] pso
Arahkan ke struktur SURFOBJ yang menjelaskan permukaan tempat panggilan diarahkan.
[in] iEsc
Menentukan kueri. Arti parameter lain tergantung pada nilai ini. QUERYESCSUPPORT adalah satu-satunya nilai yang telah ditentukan; ini mengkueri apakah driver mendukung fungsi escape tertentu. Dalam hal ini, pvIn menunjuk ke nomor fungsi escape; cjOut dan pvOut diabaikan. Jika fungsi yang ditentukan didukung, nilai yang dikembalikan bukan nol.
[in] cjIn
Menentukan ukuran, dalam byte, dari buffer yang diacu oleh pvIn.
[in] pvIn
Arahkan ke data input untuk panggilan. Format data input bergantung pada kueri yang ditentukan oleh parameter iEsc .
[in] cjOut
Menentukan ukuran, dalam byte, dari buffer yang diacu oleh pvOut.
[out] pvOut
Arahkan ke buffer output. Format data output bergantung pada kueri yang ditentukan oleh parameter iEsc .
Mengembalikan nilai
Nilai yang dikembalikan tergantung pada kueri yang ditentukan oleh parameter iEsc . Jika fungsi yang ditentukan dalam kueri tidak didukung, nilai yang dikembalikan adalah nol.
Keterangan
Menggambar pada perangkat tidak diperbolehkan dalam fungsi ini. DrvDrawEscape akan digunakan untuk dukungan gambar khusus.
GDI meneruskan data langsung dari aplikasi klien (mungkin berbahaya) ke driver, yang berarti bahwa fungsi DrvEscape harus memvalidasi semua argumen input. Secara khusus, fungsi ini harus:
- Verifikasi bahwa nilai yang diterima dalam parameter iEsc mewakili kueri yang valid.
- Verifikasi bahwa ukuran buffer input (nilai dalam parameter cjIn ) valid untuk kueri yang ditentukan.
- Verifikasi bahwa konten buffer yang ditujukkan oleh parameter pvIn valid untuk kueri yang ditentukan.
- Verifikasi bahwa ukuran buffer output yang ditentukan (nilai dalam parameter cjOut ) valid untuk kueri yang ditentukan.
DrvEscape bersifat opsional untuk semua driver.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | winddi.h (termasuk Winddi.h) |