Share via


DrvEnableSurface 函式 (winddi.h)

DrvEnableSurface 函式會設定要繪製的介面,並將它與指定的實體裝置產生關聯。

語法

HSURF DrvEnableSurface(
  DHPDEV dhpdev
);

參數

dhpdev

實體裝置 PDEV 的句柄。 這是 DrvEnablePDEV的傳回值。 PDEV 描述要建立介面的實體裝置。

傳回值

傳回值是識別新建立表面的句柄。 否則,它會是零,而且會記錄錯誤碼。

備註

準備介面以供使用的方法有兩種。

  1. 在此方法中,建議使用驅動程式呼叫 EngCreateDeviceSurface 來建立介面。 GDI 建立介面並傳回驅動程式的句柄之後,驅動程式會呼叫 EngModifySurface,以設定適當的勾點旗標,並選擇性地通知 GDI 表面的位置。
  2. 第二種方法是 Windows NT 4.0 驅動程式所使用的方法。 在此方法中,驅動程式會呼叫 EngCreateBitmap。 在此呼叫之後,驅動程式會呼叫 EngAssociateSurface ,以將表面與實體顯示裝置產生關聯。 此 GDI 函式可讓驅動程式指定標準格式點圖支援哪些圖形輸出例程。 只有在指定的實體裝置沒有表面存在時,才能呼叫此函式。 如果 Windows 2000 或更新版本的驅動程式已回移植,以在 Windows NT 4.0 上執行,則必須使用此方法。 如果這類驅動程式也會在 Windows 2000 或更新版本上執行,驅動程式中的個別程式代碼路徑應該使用第一個方法。

    對於印表機裝置,一般情況是 GDI 直接將圖形收集到 GDI 位圖。 驅動程式應該呼叫 EngCreateBitmap,這可讓 GDI 配置位圖的記憶體。

任何現有的 GDI 位圖句柄都是有效的表面控點。

對於使用 GDI 管理介面的印表機圖形 DLL,DrvEnableSurface 函式應該呼叫 EngCreateBitmap,並指定足以包含整個實體頁面的介面大小。 如果失敗,應該嘗試重複呼叫 EngCreateBitmap ,並降低表面大小,直到呼叫成功為止。 有效的大小應指定為 EngMarkBandingSurface 的輸入,以通知 GDI 需要表面帶狀。

DrvEnableSurface 傳回主要介面的句柄之後,請勿在該句柄上呼叫 EngModifySurfaceEngAssociateSurface。 這樣做可能會導致在某些情況下進行錯誤檢查。 如需詳細資訊,請參閱 Microsoft 知識庫文章330248

圖形驅動程式需要DrvEnableSurface

規格需求

需求
目標平台 桌面
標頭 winddi.h (包括 Winddi.h)

另請參閱

DrvDisableSurface

DrvEnablePDEV

EngCreateBitmap

EngCreateDeviceSurface