共用方式為


NtGdiDdCreateSurface 函式

[此函式可能會隨著每個作業系統修訂而變更。 請改用 Microsoft DirectDraw 和 Microsoft Direct3DAPIs;這些 API 會將應用程式與這類作業系統變更隔離,並隱藏與顯示驅動程式直接互動的許多其他困難。

將表面附加至另一個表面。

語法

DWORD APIENTRY NtGdiDdCreateSurface(
  _In_    HANDLE               hDirectDraw,
  _In_    HANDLE               *hSurface,
  _Inout_ DDSURFACEDESC        *puSurfaceDescription,
  _Inout_ DD_SURFACE_GLOBAL    *puSurfaceGlobalData,
  _Inout_ DD_SURFACE_LOCAL     *puSurfaceLocalData,
  _Inout_ DD_SURFACE_MORE      *puSurfaceMoreData,
  _Inout_ DD_CREATESURFACEDATA *puCreateSurfaceData,
  _Out_   HANDLE               *puhSurface
);

參數

hDirectDraw [in]

代表驅動程式 之DD_DIRECTDRAW_GLOBAL 結構的控制碼。

hSurface [in]

相同表面的上一個控制碼。 如果在模式切換之後重新建立介面,則會使用 。

puSurfaceDescription [in, out]

DDSURFACEDESC結構的指標,描述驅動程式應該建立的介面或緩衝區。

puSurfaceGlobalData [in, out]

DD_SURFACE_GLOBAL結構的指標,其中包含與多個表面全域共用的介面資料。

puSurfaceLocalData [in, out]

描述驅動程式所建立介面物件之 DD_SURFACE_LOCAL 結構的指標。

puSurfaceMoreData [in, out]

包含其他本機表面資料的 DD_SURFACE_MORE 結構的指標。

puCreateSurfaceData [in, out]

DD_CREATESURFACEDATA結構的指標,其中包含建立介面所需的資訊。

puhSurface [out]

由 DirectDraw API 使用,且不應該由驅動程式填入。

傳回值

NtGdiDdCreateSurface 會傳回下列其中一個回呼碼。

傳回碼 描述
DDHAL_DRIVER_HANDLED
驅動程式已執行作業,並傳回該作業的有效傳回碼。 如果此程式碼DD_OK,DirectDraw 或 Direct3D 會繼續進行 函式。 否則,DirectDraw 或 Direct3D 會傳回驅動程式所提供的錯誤碼,並中止函式。
DDHAL_DRIVER_NOTHANDLED
驅動程式對要求的作業沒有批註。 如果需要驅動程式實作特定的回呼,DirectDraw 或 Direct3D 會報告錯誤狀況。 否則,DirectDraw 或 Direct3D 會處理作業,就像執行 DirectDraw 或 Direct3D 裝置無關實作來定義驅動程式回呼一樣。

 

備註

建議您應用程式呼叫 IDirectDraw7::CreateSurface ,而不是使用此函式。

建立連結表面鏈結時,應該先為每個表面呼叫交換鏈結或鏈結或 Mipmaps, NtGdiDdCreateSurfaceObject 。 然後呼叫 NtGdiDdAttachSurface 以附加它們。 最後,只針對鏈結中的第一個表面呼叫 NtGdiDdCreateSurface 。 在此情況下, hSurface 會是 NtGdiDdCreateSurfaceObject 針對鏈結中第一個表面所傳回的控制碼。

NtGdiDdCreateSurface 應該只呼叫 ,以在本機和非本機視訊記憶體中建立介面。 絕對不應該呼叫它來建立系統記憶體介面。 若要建立系統記憶體介面,請改用 NtGdiDdCreateSurfaceObject

規格需求

需求
最低支援的用戶端
Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Ntgdi.h

另請參閱

圖形低階用戶端支援