функция обратного вызова 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 (include Parallel.h)

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

PPARALLEL_WRITE

IOCTL_INTERNAL_LOCK_PORT