NtGdiDdCreateSurface 函数
[此函数可能会随每个操作系统修订版而更改。 请改用 Microsoft DirectDraw 和 Microsoft Direct3DAPI;这些 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 ,而不是使用此函数。
创建附加图面链(如交换链、链或 mipmap)时,应首先为每个图 面调用 NtGdiDdCreateSurfaceObject 。 然后调用 NtGdiDdAttachSurface 来附加它们。 最后,仅为链中的第一个图 面调用 NtGdiDdCreateSurface 。 在这种情况下, hSurface 将是 NtGdiDdCreateSurfaceObject 为链中的第一个图面返回的句柄。
应仅调用 NtGdiDdCreateSurface 以在本地和非本地视频内存中创建图面。 绝不应调用它来创建系统内存图面。 若要创建系统内存图面,请改用 NtGdiDdCreateSurfaceObject 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
另请参阅