NtGdiDdCreateSurfaceObject 函数

[此函数可能会随每个操作系统修订而更改。 请改用 Microsoft DirectDraw 和 Microsoft Direct3DAPIs;这些 API 使应用程序不受此类操作系统更改影响,并隐藏了与显示驱动程序直接交互所涉及的许多其他困难。]

创建一个内核模式 Surface 对象,该对象表示 puSurfaceLocal 引用的用户模式 Surface 对象。

语法

HANDLE APIENTRY NtGdiDdCreateSurfaceObject(
  _In_ HANDLE             hDirectDrawLocal,
  _In_ HANDLE             hSurface,
  _In_ PDD_SURFACE_LOCAL  puSurfaceLocal,
  _In_ PDD_SURFACE_MORE   puSurfaceMore,
  _In_ PDD_SURFACE_GLOBAL puSurfaceGlobal,
  _In_ BOOL               bComplete
);

参数

hDirectDrawLocal [in]

内核模式 DirectDraw 对象的句柄。

hSurface [in]

同一图面的上一个句柄。 在模式切换后重新创建图面时使用。

puSurfaceLocal [in]

指向 DD_SURFACE_LOCAL 结构的指针,该结构表示要与之关联的分配内存的 DirectDraw 用户模式图面对象。 有关详细信息,请参阅 DDK 文档。

puSurfaceMore [in]

指向 DD_SURFACE_MORE 结构的指针,该结构包含每个单独的图面对象的其他本地数据。 有关详细信息,请参阅 DDK 文档。

puSurfaceGlobal [in]

指向 DD_SURFACE_GLOBAL 结构的指针,该结构包含与多个图面全局共享的图面数据。 有关详细信息,请参阅 DDK 文档。

bComplete [in]

内核模式对象完成标志。 可以是以下值之一。

(TRUE)

完成有关内核模式表示的所有处理。

(FALSE)

创建 对象,但不设置内部数据,例如内存指针。 可以使用 NtGdiDdAttachSurface 附加使用 FALSE 创建的对象,并通过调用 NtGdiDdCreateSurface 来完成。

返回值

如果成功,此函数将返回内核模式图面表示形式的句柄;否则返回 NULL

备注

建议应用程序使用 DirectDraw 和 Direct3D API 来创建和管理图形设备对象。 这些构造以简化且与操作系统无关的方式抽象化设备创建过程。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Ntgdi.h

另请参阅

图形低级别客户端支持

DdCreateSurfaceObject

NtGdiDdDeleteSurfaceObject

NtGdiDdAttachSurface

NtGdiDdCreateSurface