WritePort 함수(winsplp.h)
포트 모니터의 WritePort
함수는 프린터 포트에 데이터를 씁니다.
구문
BOOL WritePort(
_In_ HANDLE hPort,
_In_ LPBYTE pBuffer,
DWORD cbBuf,
_Out_ LPDWORD pcbWritten
);
매개 변수
[in] hPort
호출자가 제공한 포트 핸들입니다.
[in] pBuffer
포트에 쓸 데이터를 포함하는 버퍼에 대한 호출자 제공 포인터입니다.
cbBuf
호출자가 제공한 pBuffer 크기(바이트)입니다.
[out] pcbWritten
포트에 성공적으로 기록된 바이트 수를 수신할 위치에 대한 호출자 제공 포인터입니다.
반환 값
작업이 성공하면 함수는 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE를 반환해야 합니다.
설명
언어 모니터 및 포트 모니터 서버 DLL은 함수를 WritePort
정의하고 함수의 주소를 MONITOR2 구조에 포함해야 합니다.
함수의 hPort 인수로 수신된 핸들은 모니터의 OpenPort 또는 OpenPortEx 함수가 제공한 포트 핸들입니다.
일반적으로 언어 모니터의 WritePort
함수는 pBuffer가 가리키는 버퍼에 포함된 데이터 스트림에 언어별 명령을 추가한 다음 수정된 데이터 스트림을 포트 모니터의 WritePort
함수에 전달합니다.
포트 모니터 서버 DLL의 WritePort
함수는 일반적으로 WriteFile(Microsoft Windows SDK 설명서에 설명됨)을 호출하여 데이터 스트림을 커널 모드 포트 드라이버로 보냅니다.
일반적인 인쇄 작업은 에 대한 여러 호출로 WritePort
구성됩니다. 각 호출에는 다른 cbBuf 값이 있을 수 있습니다.
함수는 pcbWritten가 가리키는 위치에 숫자를 배치하여 성공적으로 작성된 바이트 수를 반환해야 합니다. 언어 모니터의 경우 이 수에는 데이터 스트림에 추가된 추가 언어별 바이트 수가 포함되지 않아야 합니다.
스풀러는 반환된 바이트 수가 아닌 의 반환 값을 확인하여 WritePort
쓰기 작업의 성공 또는 실패를 결정합니다. 따라서 반환된 바이트 수 0은 함수가 FALSE를 반환하지 않는 한 실패한 쓰기를 나타내지 않습니다.
일종의 시스템 구현 또는 모니터 구현 제한 시간 메커니즘은 스풀러가 중단되지 않도록 함수가 WritePort
적절한 시간 내에 반환되도록 해야 합니다.
언어 모니터가 StartDocPort EndDocPort/ 쌍 외부에서 포트 모니터의WritePort
루틴을 호출하는 것이 허용됩니다. 그러나 일부 포트 모니터는 이러한 호출에 실패할 수 있으므로 이 오류를 처리하려면 언어 모니터를 작성해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | winsplp.h(Winsplp.h 포함) |
라이브러리 | NtosKrnl.exe |