Поделиться через


Функция 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

См. также раздел

StartDocPort

OpenPortEx

OpenPort

MONITOR2

EndDocPort