Функция WritePort (winsplp.h)
Функция монитора WritePort
портов записывает данные в порт принтера.
Синтаксис
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
Параметры
[in] hPort
Дескриптор порта, предоставленный вызывающим абонентом.
[in] pBuffer
Предоставленный вызывающим объектом указатель на буфер, содержащий данные для записи в порт.
cbBuf
Предоставленный вызывающим абонентом размер pBuffer в байтах.
[out] pcbWritten
Предоставленный вызывающим элементом указатель на расположение для получения количества байтов, успешно записанных на порт.
Возвращаемое значение
Если операция выполнена успешно, функция должна вернуть значение TRUE. В противном случае он должен вернуть значение FALSE.
Комментарии
Языковые мониторы и библиотеки DLL сервера мониторинга портов необходимы для определения WritePort
функции и включения адреса функции в структуру MONITOR2 .
Дескриптор, полученный в качестве аргумента hPort функции, является дескриптором порта, предоставленным функцией OpenPort или OpenPortEx монитора.
Как правило, функция языкового монитора добавляет команды для конкретного WritePort
языка в поток данных, содержащийся в буфере, на который указывает pBuffer, а затем передает измененный поток данных функции монитора WritePort
портов.
Функция DLL WritePort
сервера мониторинга портов обычно вызывает WriteFile (описано в документации по Microsoft Windows SDK) для отправки потока данных в драйвер порта режима ядра.
Типичное задание печати состоит из нескольких вызовов .WritePort
Каждый вызов может иметь другое значение cbBuf .
Функция должна возвращать число успешно записанных байтов, поместив его в расположение, на который указывает pcbWritten. Для языковых мониторов это число не должно включать в себя количество дополнительных байтов, добавляемых в поток данных для конкретного языка.
Очередь очереди определяет успешность или сбой операции записи, проверяя WritePort
возвращаемое значение, а не возвращенное число байтов. Таким образом, возвращаемое число байтов, равное нулю, не представляет неудачную запись, если функция не возвращает значение FALSE.
Какой-то механизм времени ожидания, реализованный системой или монитором, должен гарантировать, что WritePort
функция вернет в течение разумного периода времени, чтобы избежать остановки очереди печати.
Языковой монитор может вызывать подпрограмму монитора WritePort
портов вне пары StartDocPort/EndDocPort . Однако некоторые мониторы портов могут завершиться ошибкой такого вызова, поэтому для обработки этой ошибки необходимо записать языковой монитор.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | winsplp.h (включая Winsplp.h) |
Библиотека | NtosKrnl.exe |