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 콜백에 대한 포인터를 가져오기 위해 커널 모드 드라이버는 PARCLASS_INFORMATION 구조를 반환하는 IOCTL_INTERNAL_PARCLASS_CONNECT 요청을 사용합니다. PARCLASS_INFORMATION 구조체의 ParallelRead 멤버는 이 콜백에 대한 포인터입니다.

클라이언트는 병렬 포트에 잠금이 있는 경우에만 이 루틴을 사용할 수 있습니다. 클라이언트는 IOCTL_INTERNAL_LOCK_PORT 요청을 사용하여 병렬 포트에 대한 잠금을 가져옵니다.

PPARALLEL_READ 콜백은 호출자의 IRQL에 있는 호출자의 스레드에서 실행됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 parallel.h(Parallel.h 포함)

추가 정보

PPARALLEL_WRITE

IOCTL_INTERNAL_LOCK_PORT