부분 인쇄 공급자 개요
부분 공급자 DLL은 일반적으로 인쇄 큐 및 인쇄 작업을 관리하는 공급자 함수의 사용자 지정된 버전만 구현합니다. 부분 공급자는 인쇄 클라이언트 시스템에서만 실행되며 드라이버 관리 작업 및 프린터 데이터 생성을 위한 로컬 인쇄 공급자에 따라 달라집니다. 클라이언트 시스템에는 여러 부분 공급자가 있을 수 있습니다.
인쇄 공급자가 정의한 함수에서 특정 함수는 "필수"로 식별됩니다. 부분 인쇄 공급자는 필요한 모든 함수를 제공해야 합니다. 부분 인쇄 공급자는 일반적으로 선택적 함수를 구현하지 않습니다.
필수 함수는 다음 함수 그룹에 속합니다.
부분 인쇄 공급자의 경우 프린터 포트는 인쇄 큐와 동일한 것으로 간주되어야 합니다. PRINTER_INFO_2 구조를 수신하는 함수의 경우 구조체의 pPort 멤버를 인쇄 큐 이름으로 설정해야 합니다. 따라서 인쇄 큐 이름이 \\Server\Printer1이면 포트 이름도 \\Server\Printer1이어야 합니다. EnumPorts의 부분 인쇄 공급자 구현은 \\Server\Printer1 포트 이름을 반환해야 합니다.
인쇄 공급자 소개에 설명된 대로 애플리케이션에서 OpenPrinter를 호출하면 스풀러의 라우터가 지정된 인쇄 큐를 인식하고 핸들을 반환할 때까지 각 인쇄 공급자를 호출합니다.
부분 인쇄 공급자가 로컬 공급자를 대체하지 않는다는 점을 기억해야 합니다. 프린터에 대한 사용자 연결이 만들어지면 공급자 함수에 대한 각 호출이 로컬 공급자를 통해 라우팅됩니다. 이 호출은 호출 자체를 처리하거나 부분 공급자에게 다시 라우팅됩니다. "필수"로 식별되는 공급자 함수에 대한 모든 호출은 로컬 공급자에서 적절한 부분 공급자로 다시 할당됩니다.
부분 공급자는 인쇄 작업을 생성하지 않습니다. 로컬 공급자 및 해당 인쇄 프로세서 에 따라 프린터로 보낼 수 있는 RAW 데이터를 만듭니다. 인쇄 프로세서가 로컬 공급자의 StartDocPrinter 함수( 인쇄 작업 인쇄 참조)를 호출하고 인쇄 큐가 부분 공급자에서 지원되는 경우 로컬 공급자는 부분 공급자의 StartDocPrinter 함수를 호출하여 RAW 데이터를 파일로 제공합니다. 부분 공급자의 StartDocPrinter, WritePrinter 및 EndDocPrinter 함수는 네트워크를 통해 RAW 데이터를 원격 인쇄 큐로 보내야 합니다.