EngGetPrinterDriver 函式 (winddi.h)
EngGetPrinterDriver 函式會擷取指定印表機的驅動程序數據。
語法
ENGAPI BOOL EngGetPrinterDriver(
[in] HANDLE hPrinter,
[in, optional] LPWSTR pEnvironment,
[in] DWORD dwLevel,
[out, optional] BYTE *lpbDrvInfo,
[in] DWORD cbBuf,
[out] DWORD *pcbNeeded
);
參數
[in] hPrinter
應該擷取驅動程序數據的印表機句柄。
[in, optional] pEnvironment
指定環境的 Null 終止字串指標。 例如,“Windows NT x86” 指定在 Intel 處理器上執行的 NT 型作業系統。 如果 pEnvironment 為 NULL,則會使用呼叫驅動程式和用戶端電腦的目前環境。
[in] dwLevel
指定 lpbDrvInfo 指向的結構版本。 此參數必須是下列其中一個值:
值 | 意義 |
---|---|
1 | GDI 會在 lpbDrvInfo 指向的緩衝區中寫入DRIVER_INFO_1結構。 |
2 | GDI 會在 lpbDrvInfo 指向的緩衝區中寫入DRIVER_INFO_2結構。 |
3 | GDI 會在 lpbDrvInfo 指向的緩衝區中寫入DRIVER_INFO_3結構。 |
[out, optional] lpbDrvInfo
GDI 放置要求之DRIVER_INFO_X 結構的緩衝區指標。
[in] cbBuf
指定 lpbDrvInfo 指向之緩衝區的大小,以位元組為單位。
[out] pcbNeeded
GDI 會將複製的位元組數目放在成功時 所指向緩衝區 的記憶體位置指標,或 cbBuf 太小時所需的位元元組數目。
傳回值
EngGetPrinterDriver 會在成功時傳回 TRUE ;否則會報告錯誤並傳回 FALSE。
備註
印表機驅動程式 DLL 可以使用多個資料檔來支援不同的印表機模型。 印表機驅動程式會呼叫 EngGetPrinterDriver ,以判斷要使用的數據檔。 例如,Unidrv 轉譯器會呼叫此函式來判斷 GPD 檔案的名稱,而後置腳本驅動程式會呼叫此函式來判斷 PPD 檔案的名稱。 DRIVER_INFO_2和DRIVER_INFO_3結構包含指定資料檔位置的完整路徑和檔名。 然後,印表機驅動程式可以使用傳回的路徑和檔名來載入數據檔,方法是使用路徑和檔名作為單一自變數呼叫 EngLoadModule 。
Microsoft Windows SDK檔中會說明 DRIVER_INFO_X結構。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows 2000 和更新版本的 Windows 作業系統中使用。 |
目標平台 | Universal |
標頭 | winddi.h (包括 Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |