다음을 통해 공유


인쇄 작업 인쇄

포트 열기 및 닫기에서 설명한 대로 포트가 열린 후 스풀러는 인쇄 작업을 포트로 보낼 수 있습니다.

각 인쇄 작업은 언어 또는 포트 모니터의 StartDocPortEndDocPort 함수에 대한 스풀러 호출로 구분됩니다. 스풀러는 인쇄 프로세서가 스풀러의 StartDocPrinterEndDocPrinter 함수를 호출할 때 이러한 함수를 호출합니다.

StartDocPortEndDocPort 함수 집합의 scope 내에서 모니터의 WritePort, ReadPortGetPrinterDataFromPort 함수에 대한 무제한 스풀러 호출이 발생할 수 있습니다.

이러한 각 함수는 OpenPortEx (또는 OpenPort)에서 반환된 포트 핸들을 입력 인수에서 로 지정해야 합니다. 일반적으로 언어 모니터는 연결된 포트 모니터에서 같은 이름의 함수를 호출하여 각 함수를 구현합니다.

스풀러가 언어 모니터의 WritePort 함수를 호출하여 데이터 스트림을 포트로 보내는 경우 함수는 일반적으로 PJL 명령과 같은 언어별 정보를 수신된 데이터 스트림에 추가한 후 연결된 포트 모니터의 WritePort 함수에 전달합니다.

ReadPort 함수는 언어 모니터가 SetPort를 호출하여 스풀러에 보낼 수 있는 양방향 프린터 하드웨어에서 상태 정보를 가져오는 데 사용됩니다. 스풀러는 ReadPort 함수를 호출하지 않습니다.

하드웨어 인쇄가 양방향인 경우 언어 모니터와 포트 모니터 모두 GetPrinterDataFromPort 함수를 지원해야 합니다. 언어 모니터의 GetPrinterDataFromPort 함수는 레지스트리 값 이름을 입력으로 수락하고, 해당 이름에 대한 값을 가져오고(일반적으로 연결된 포트 모니터의 WritePortReadPort 함수를 호출하여) 호출자에게 값을 반환해야 합니다. 포트 모니터의 GetPrinterDataFromPort 함수는 I/O 컨트롤 코드를 입력으로 수락하고 DeviceIoControl 을 호출하여 제어 코드를 포트 드라이버에 전달하고 결과를 반환해야 합니다.