функция обратного вызова PPARALLEL_WRITE (parallel.h)

Подпрограмма обратного вызова PPARALLEL_WRITE типа записывает данные на параллельное устройство. Эта процедура предоставляется системным драйвером шины для параллельных портов.

Синтаксис

PPARALLEL_WRITE PparallelWrite;

NTSTATUS PparallelWrite(
  [in]  PVOID Context,
  [in]  PVOID Buffer,
  [in]  ULONG NumBytesToWrite,
  [out] PULONG NumBytesWritten,
  [in]  UCHAR Channel
)
{...}

Параметры

[in] Context

Указатель на расширение устройства физического объекта физического устройства (PDO) параллельного устройства.

[in] Buffer

Указатель на буфер записи, выделенный вызывающим объектом.

[in] NumBytesToWrite

Указывает количество байтов для копирования из буфера записи на параллельное устройство. Должно быть меньше или равно количеству байтов в буфере записи, выделенном вызывающим объектом.

[out] NumBytesWritten

Указывает количество байтов, которые фактически были скопированы из буфера записи, выделенного вызывающим объектом, на параллельное устройство.

[in] Channel

Не используется.

Возвращаемое значение

Код возврата Описание
STATUS_SUCCESS
Данные, предоставленные вызывающим абонентом, успешно переданы на устройство.
STATUS_Xxx
Внутренняя операция привела к ошибке NTSTATUS.

Комментарии

Чтобы получить указатель на предоставляемый системой PPARALLEL_WRITE обратном вызове, драйвер режима ядра использует запрос IOCTL_INTERNAL_PARCLASS_CONNECT , который возвращает структуру PARCLASS_INFORMATION . Элемент ParallelWrite структуры PARCLASS_INFORMATION является указателем на этот обратный вызов.

Клиент может использовать эту подпрограмму только в том случае, если у него есть блокировка на параллельном порту. Клиент получает блокировку на параллельном порту с помощью запроса IOCTL_INTERNAL_LOCK_PORT .

Обратный вызов PPARALLEL_WRITE выполняется в потоке вызывающего объекта в irQL вызывающего объекта.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть parallel.h (включая Parallel.h)

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

PPARALLEL_READ

IOCTL_INTERNAL_LOCK_PORT