다음을 통해 공유


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 를 호출하는 것이 좋습니다.

스왑 체인이나 체인 또는 밉맵과 같은 연결된 표면 체인을 만들 때 각 표면에 대해 먼저 NtGdiDdCreateSurfaceObject 를 호출해야 합니다. 그런 다음 NtGdiDdAttachSurface 를 호출하여 연결합니다. 마지막으로 체인의 첫 번째 화면에 대해서만 NtGdiDdCreateSurface 를 호출합니다. 이 경우 hSurface 는 체인의 첫 번째 표면에 대해 NtGdiDdCreateSurfaceObject 에서 반환한 핸들입니다.

NtGdiDdCreateSurface 는 로컬 및 비 로컬 비디오 메모리에 표면을 만들기 위해 호출되어야 합니다. 시스템 메모리 표면을 만들기 위해 호출해서는 안 됩니다. 시스템 메모리 화면을 만들려면 NtGdiDdCreateSurfaceObject 를 대신 사용합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Ntgdi.h

추가 정보

그래픽 하위 수준 클라이언트 지원