共用方式為


自訂印表機安裝作業

重要

建議您使用 Microsoft 的 IPP 收件匣類別驅動程式,以及列印支援應用程式 () ,來自訂印表機裝置開發Windows 10和 11 中的列印體驗。

如需詳細資訊,請參閱 列印支援應用程式設計指南

若要為使用 Ntprint.dll 安裝的印表機提供自訂印表機安裝作業,預設的 Windows 2000 和更新版本的印表機類別安裝程式,您可以在印表機的 INF 檔案中包含 VendorSetup INF 專案。

警告

請注意, VendorSetup 現在已被取代,且不應該由您開發的任何 v3 或 v4 驅動程式使用。 本主題僅供參考,或維護已使用此 INF 指示詞的現有 v3 驅動程式。

如果您打算在安裝印表機驅動程式期間顯示使用者介面元素,則必須使用 VendorSetup INF 專案。 不過,只有在必要的情況下,才應該使用 VendorSetup INF 專案。 明顯的缺點是,其使用可防止一般使用者安裝具有隨插即用 (使用者的印表機,在此情況下必須是系統管理員) 。

當裝置驅動程式未簽署或 (簽署或未簽署) 驅動程式的 INF 檔案包含 VendorSetup INF 專案時,無法使用伺服器端安裝裝置。 當驅動程式未簽署時,如果驅動程式是已簽署的驅動程式,安裝程式會將0x8000新增至驅動程式所擁有的排名。 如果驅動程式的 INF 檔案包含 VendorSetup 專案,安裝程式會決定裝置安裝需要使用者互動 (在伺服器端安裝中無法發生,) 並停止安裝。

如果驅動程式的排名0x8000或更大,安裝程式也會停止伺服器端安裝。 當使用者登入系統管理許可權時,安裝可以繼續進行,此時安裝程式會將裝置安裝重新開機為用戶端安裝。 對於排名為0x1000或更大且不是硬體識別碼相符的驅動程式,安裝程式會在 [新增裝置 DLL] 中啟動 [找到的新硬體精靈],提示使用者安裝驅動程式。

如果已簽署驅動程式的 INF 檔案包含 VendorSetup 專案,且驅動程式的排名小於 0x1000,安裝程式就不會啟動 [找到新的硬體精靈]。 如需詳細資訊,請參閱 安裝程式如何選取驅動程式

VendorSetup專案的格式如下所示:

VendorSetup= FileNameFunctionName

其中 FileName 是包含安裝程式函式的 DLL 名稱,而 FunctionName 是函式的名稱。 DLL 必須安裝在 %windir%\system32 目錄中。 只有在隨插即用或 [新增印表機精靈] 安裝印表機時,印表機類別安裝程式才會在此 DLL 中呼叫安裝程式函式。 使用 [新增印表機驅動程式精靈]) , (安裝驅動程式時,不會呼叫安裝程式函式。

若要將一或多個檔案複製到 %windir%\system32 目錄,您可以將 INF 寫入器定義區段的名稱新增至 INF DestinationDirs 區段。 在下列範例中,OEMVendorFiles 區段會列出要複製的所有檔案。

[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll

FunctionName 指定的函式必須符合下列原型:

VOID WINAPIFunctionName(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);

其中 FunctionName 是安裝函式的名稱。 下表顯示函式的參數及其描述。

參數 Description
hWnd 指定父視窗的控制碼。
hInstance 指定呼叫進程的實例控制碼。
lpszCmdLine 指定包含已安裝印表機名稱的 ANSI 字串。 此字串是由 FunctionName剖析。
nCmdShow 指定視窗的顯示方式。 控制視窗顯示方式的旗標定義在 Winuser.h 中。

印表機類別安裝程式會將安裝程式函式呼叫為安裝作業的最後一個步驟。