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

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

Синтаксис

PPARALLEL_READ PparallelRead;

NTSTATUS PparallelRead(
  [in]  PVOID Context,
  [out] PVOID Buffer,
  [in]  ULONG NumBytesToRead,
  [out] PULONG NumBytesRead,
  [in]  UCHAR Channel
)
{...}

Параметры

[in] Context

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

[out] Buffer

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

[in] NumBytesToRead

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

[out] NumBytesRead

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

[in] Channel

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

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

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

Комментарии

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

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

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

Требования

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

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

PPARALLEL_WRITE

IOCTL_INTERNAL_LOCK_PORT