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

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

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

요구 사항

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

추가 정보

PPARALLEL_READ

IOCTL_INTERNAL_LOCK_PORT