다음을 통해 공유


프린터 디렉터리 서비스에 대한 프린터 드라이버 지원

프린터 드라이버는 Directory Services에 인쇄 큐를 게시할 책임이 없습니다. Microsoft Windows 2000 이상 인쇄 폴더는 프린터를 설치하는 동안 스풀러의 SetPrinter 함수를 호출하여 인쇄 큐 개체를 만듭니다.

사용자가 작업 표시줄의 시작 메뉴에서 검색 옵션을 사용하여 특정 속성이 있는 프린터를 검색할 수 있도록 인쇄 큐 속성이 게시됩니다. 인쇄 폴더는 DriverCapabilities에서 사용할 수 있는 일부 프린터 기능을 게시하지만 전부는 아닙니다. 검색에 유용한 것으로 간주되는 기능만 게시됩니다.

프린터 드라이버는 인쇄 큐 개체의 속성 정보를 추가하거나 수정할 수 있습니다. 게시할 수 있는 인쇄 큐 속성은 winspool.h에 정의된 SPLDS_ 접두사 상수로 식별됩니다. 프린터 속성을 추가하거나 수정하려면 드라이버에서 미리 정의된 속성 이름 식별자를 사용해야 합니다.

인쇄 큐 개체의 속성 정보를 추가하거나 수정하려면 다음 단계를 수행합니다.

  1. spooler의 SetPrinterDataEx 함수를 호출하여 SPLDS_DRIVER_KEY 레지스트리에 속성 이름과 값을 추가합니다.

  2. PRINTER_INFO_7 입력 구조(Windows SDK 설명서에 설명됨)와 DSPRINT_UPDATE 작업을 사용하여 스풀러의 SetPrinter 함수를 호출하여 게시된 인쇄 큐 개체를 업데이트해야 한다고 스풀러에 알릴 수 있습니다. (드라이버는 DSPRINT_PUBLISH 동작을 지정해서는 안 됩니다.)

이러한 단계는 함수가 PRINTER_EVENT_INITIALIZE 이벤트를 수신할 때 프린터 드라이버의 DrvPrinterEvent 함수 내에서 구현되어야 합니다.

드라이버가 프린터의 게시된 속성에 대한 현재 값을 가져와야 하는 경우 GetPrinterDataEx 또는 EnumPrinterDataEx 를 호출하여 레지스트리에서 정보를 가져와야 합니다. 이 정보는 스풀러가 유지 관리되며 항상 최신 상태입니다. 다른 방법은 GetPrinter 를 호출하여 인쇄 큐의 개체 식별자를 가져온 다음 ADSI 함수를 호출하여 게시된 속성의 값을 가져오는 것입니다. 이 기술은 리소스 집약적이고 반환된 데이터가 항상 최신이 아닐 수 있기 때문에 권장되지 않습니다.