Share via


EngModifySurface 函式 (winddi.h)

EngModifySurface 函式會通知 GDI 有關驅動程式所建立表面的屬性。

語法

ENGAPI BOOL EngModifySurface(
  HSURF  hsurf,
  HDEV   hdev,
  FLONG  flHooks,
  FLONG  flSurface,
  DHSURF dhsurf,
  VOID   *pvScan0,
  LONG   lDelta,
  VOID   *pvReserved
);

參數

hsurf

要修改之表面的句柄。 此參數是 EngCreateDeviceBitmapEngCreateDeviceSurface 所傳回的介面句柄,或是從 SURFOBJ 結構的 hsurf 成員傳回。

hdev

要與介面相關聯之裝置的句柄。 這是 GDI 傳遞至 DrvCompletePDEV的句柄。

flHooks

這是一組旗標,可控制驅動程式在指定的介面上發生 GDI 繪圖時可攔截的函式。 這可以是 EngAssociateSurface 參考頁面上所列任何HOOK_Xxx 值的位 OR。

flSurface

這是描述介面屬性的一組旗標。 目前,當介面位於視訊記憶體時,驅動程式應該將此設定為MS_NOTSYSTEMMEMORY。

dhsurf

識別驅動程式的介面。 驅動程式可以將此設定為任何專案;如果函式成功,GDI 會將所產生表面 SURFOBJ 結構的 dhsurf 成員設定為這個值。

pvScan0

位圖開頭之虛擬位址的指標。

lDelta

這是點陣圖的虛擬位址步幅;也就是說,位圖數據列開頭與下一個點陣圖數據列之間的位元元組數目。

pvReserved

是保留的,而且必須一律設定為 NULL

傳回值

EngModifySurface 會在成功時傳回 TRUE ;否則會傳回 FALSE

備註

EngModifySurface 可讓驅動程式修改 裝置管理的介面 ,並通知 GDI 此表面的屬性。 這可讓驅動程式將目的地介面從不透明轉換為非paque,因此允許 GDI 繪製在介面上。

DIB 引擎會使用 pvScan0lDelta 直接繪製到表面。 當這些參數為 NULL 時,介面對 GDI 不透明,而 GDI 會還原為呼叫 DrvCopyBits ,以取得驅動程式未連結的繪圖作業。

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

規格需求

需求
最低支援的用戶端 可在 Windows 2000 和更新版本的 Windows 作業系統中使用。
目標平台 Universal
標頭 winddi.h (包括 Winddi.h)
程式庫 Win32k.lib
Dll Win32k.sys

另請參閱

DrvCopyBits

EngAssociateSurface