共用方式為


印表機目錄服務的印表機驅動程式支援

印表機驅動程式不負責將列印佇列發佈至目錄服務。 Microsoft Windows 2000 和更新版本的列印檔案夾會在安裝印表機期間呼叫多工緩衝處理的 SetPrinter 函式) ,以建立列印佇列物件 (。

列印佇列屬性會發佈,讓使用者可以使用工作列的 [開始] 功能表上的 [搜尋] 選項來搜尋具有特定屬性的印表機。 列印檔案夾會從 DriverCapabilities 發佈一些印表機功能,但並非所有印表機功能。 只會發佈考慮用於流覽用途的功能。

印表機驅動程式可以新增或修改列印佇列物件的屬性資訊。 可發佈的列印佇列屬性是由 winspool.h 中定義的 SPLDS_前置常數來識別。 若要新增或修改印表機屬性,您的驅動程式必須使用這些預先定義的屬性名稱識別碼。

若要新增或修改列印佇列物件的屬性資訊,請執行下列步驟:

  1. 藉由呼叫 spooler 的 SetPrinterDataEx 函式,將屬性名稱和值新增至登錄SPLDS_DRIVER_KEY。

  2. 呼叫多工緩衝處理常式的 SetPrinter 函式,其輸入結構為 PRINTER_INFO_7 (Windows SDK 檔) 和DSPRINT_UPDATE動作中所述的輸入結構,以通知多工緩衝處理常式應該更新已發佈的列印佇列物件。 (驅動程式不應該指定 DSPRINT_PUBLISH.) 的動作

當函式收到PRINTER_EVENT_INITIALIZE事件時,應該在印表機驅動程式的 DrvPrinterEvent 函式內實作這些步驟。

如果驅動程式必須取得印表機已發佈屬性的目前值,它應該呼叫 GetPrinterDataExEnumPrinterDataEx ,以從登錄取得資訊,這是維護多工緩衝處理程式且一律是最新的。 另一種方式是呼叫 GetPrinter 以取得列印佇列的物件識別碼,然後呼叫 ADSI 函式以取得已發佈屬性的值。 不建議使用這項技術,因為資源密集,而且因為傳回的資料不一定是最新的。