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 會傳回下列其中一個回呼碼。
傳回碼 | 描述 |
---|---|
|
驅動程式已執行作業,並傳回該作業的有效傳回碼。 如果此程式碼DD_OK,DirectDraw 或 Direct3D 會繼續進行 函式。 否則,DirectDraw 或 Direct3D 會傳回驅動程式所提供的錯誤碼,並中止函式。 |
|
驅動程式對要求的作業沒有批註。 如果需要驅動程式實作特定的回呼,DirectDraw 或 Direct3D 會報告錯誤狀況。 否則,DirectDraw 或 Direct3D 會處理作業,就像執行 DirectDraw 或 Direct3D 裝置無關實作來定義驅動程式回呼一樣。 |
備註
建議您應用程式呼叫 IDirectDraw7::CreateSurface ,而不是使用此函式。
建立連結表面鏈結時,應該先為每個表面呼叫交換鏈結或鏈結或 Mipmaps, NtGdiDdCreateSurfaceObject 。 然後呼叫 NtGdiDdAttachSurface 以附加它們。 最後,只針對鏈結中的第一個表面呼叫 NtGdiDdCreateSurface 。 在此情況下, hSurface 會是 NtGdiDdCreateSurfaceObject 針對鏈結中第一個表面所傳回的控制碼。
NtGdiDdCreateSurface 應該只呼叫 ,以在本機和非本機視訊記憶體中建立介面。 絕對不應該呼叫它來建立系統記憶體介面。 若要建立系統記憶體介面,請改用 NtGdiDdCreateSurfaceObject 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|
另請參閱