Fungsi ReadPort (winsplp.h)
Fungsi pemantau ReadPort
port membaca data dari port printer.
Sintaks
BOOL ReadPort(
_In_ HANDLE hPort,
_Out_ LPBYTE pBuffer,
DWORD cbBuffer,
_Out_ LPDWORD pcbRead
);
Parameter
[in] hPort
Handel port yang disediakan penelepon.
[out] pBuffer
Penunjuk yang disediakan penelepon ke buffer untuk menerima data yang dibaca dari port.
cbBuffer
Ukuran yang disediakan penelepon, dalam byte, pBuffer.
[out] pcbRead
Penunjuk yang disediakan penelepon ke lokasi untuk menerima jumlah byte yang berhasil dibaca dari port.
Nilai kembali
Jika operasi berhasil, fungsi harus mengembalikan TRUE. Jika tidak, maka akan mengembalikan FALSE.
Keterangan
Monitor bahasa dan DLL server monitor port diperlukan untuk menentukan ReadPort
fungsi dan menyertakan alamat fungsi dalam struktur MONITOR2 .
Handel yang diterima sebagai argumen hPort fungsi adalah handel port yang disediakan fungsi OpenPort atau OpenPortEx monitor.
Biasanya, fungsi pemantau ReadPort
bahasa memanggil fungsi monitor ReadPort
port terkait, dan mengembalikan konten buffer yang diperoleh ke pemanggil.
Selain itu, pemantau bahasa mungkin membuat utas terpisah yang memanggil fungsi monitor ReadPort
port untuk memeriksa informasi status yang tidak diminta. Jika operasi baca seperti itu berhasil, informasi status harus dikembalikan ke penampung dengan memanggil SetPort (dijelaskan dalam dokumentasi Microsoft Windows SDK).
Biasanya, fungsi DLL ReadPort
server monitor port memanggil ReadFile (dijelaskan dalam dokumentasi Windows SDK) untuk mendapatkan data dari driver port mode kernel. Fungsi ini hanya mengembalikan data ke pemanggil.
Meskipun monitor bahasa dan pemantau port harus menentukan ReadPort
fungsi dan menempatkan alamatnya dalam struktur MONITOR2, fungsi monitor ReadPort
bahasa tidak pernah benar-benar dipanggil oleh penampung atau aplikasi. Fungsi ini hanya untuk penggunaan internal monitor bahasa itu sendiri.
Misalnya pjlmon.dll, monitor bahasa sampel, membuat utas terpisah yang memanggilnya sendiri ReadPort
untuk watch untuk informasi status printer yang tidak diminta, dan ReadPort
fungsi memanggil fungsi monitor ReadPort
port. Ketika pemantau port mengembalikan data ke pemantau bahasa, pemantau bahasa mengurai data yang diterima dan memanggil SetPort (dijelaskan dalam dokumentasi Windows SDK) untuk mengirim informasi status ke penampung.
Fungsi harus mengembalikan jumlah byte yang berhasil dibaca dengan menempatkan angka di lokasi yang ditujukan oleh pcbRead. Pemanggil menentukan keberhasilan atau kegagalan operasi tulis dengan memeriksa ReadPort's
nilai pengembalian, bukan jumlah byte yang dikembalikan. Jadi jumlah byte yang dikembalikan dari nol tidak mewakili pembacaan yang gagal kecuali fungsi mengembalikan FALSE.
Semacam mekanisme waktu habis yang diimplementasikan sistem atau yang diimplementasikan pemantauan harus memastikan bahwa ReadPort
fungsi akan kembali dalam jumlah waktu yang wajar, untuk menghindari mengulur-ulur penampung.
Pemantau bahasa dapat diterima untuk memanggil rutinitas monitor ReadPort
port di luar pasangan StartDocPort/EndDocPort . (Panggilan seperti itu mungkin dihasilkan oleh pemeriksaan utas untuk status yang tidak diminta.) Namun, beberapa pemantau port mungkin gagal dalam panggilan seperti itu, sehingga pemantau bahasa harus ditulis untuk menangani kegagalan ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | winsplp.h (termasuk Winsplp.h) |
Pustaka | NtosKrnl.exe |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk