프린터 디렉터리 서비스에 대한 프린터 드라이버 지원
프린터 드라이버는 Directory Services에 인쇄 큐를 게시할 책임이 없습니다. Microsoft Windows 2000 이상 인쇄 폴더는 프린터를 설치하는 동안 스풀러의 SetPrinter 함수를 호출하여 인쇄 큐 개체를 만듭니다.
사용자가 작업 표시줄의 시작 메뉴에서 검색 옵션을 사용하여 특정 속성이 있는 프린터를 검색할 수 있도록 인쇄 큐 속성이 게시됩니다. 인쇄 폴더는 DriverCapabilities에서 사용할 수 있는 일부 프린터 기능을 게시하지만 전부는 아닙니다. 검색에 유용한 것으로 간주되는 기능만 게시됩니다.
프린터 드라이버는 인쇄 큐 개체의 속성 정보를 추가하거나 수정할 수 있습니다. 게시할 수 있는 인쇄 큐 속성은 winspool.h에 정의된 SPLDS_ 접두사 상수로 식별됩니다. 프린터 속성을 추가하거나 수정하려면 드라이버에서 미리 정의된 속성 이름 식별자를 사용해야 합니다.
인쇄 큐 개체의 속성 정보를 추가하거나 수정하려면 다음 단계를 수행합니다.
spooler의 SetPrinterDataEx 함수를 호출하여 SPLDS_DRIVER_KEY 레지스트리에 속성 이름과 값을 추가합니다.
PRINTER_INFO_7 입력 구조(Windows SDK 설명서에 설명됨)와 DSPRINT_UPDATE 작업을 사용하여 스풀러의 SetPrinter 함수를 호출하여 게시된 인쇄 큐 개체를 업데이트해야 한다고 스풀러에 알릴 수 있습니다. (드라이버는 DSPRINT_PUBLISH 동작을 지정해서는 안 됩니다.)
이러한 단계는 함수가 PRINTER_EVENT_INITIALIZE 이벤트를 수신할 때 프린터 드라이버의 DrvPrinterEvent 함수 내에서 구현되어야 합니다.
드라이버가 프린터의 게시된 속성에 대한 현재 값을 가져와야 하는 경우 GetPrinterDataEx 또는 EnumPrinterDataEx 를 호출하여 레지스트리에서 정보를 가져와야 합니다. 이 정보는 스풀러가 유지 관리되며 항상 최신 상태입니다. 다른 방법은 GetPrinter 를 호출하여 인쇄 큐의 개체 식별자를 가져온 다음 ADSI 함수를 호출하여 게시된 속성의 값을 가져오는 것입니다. 이 기술은 리소스 집약적이고 반환된 데이터가 항상 최신이 아닐 수 있기 때문에 권장되지 않습니다.