다음을 통해 공유


DdQueryDirectDrawObject 함수(ddrawgdi.h)

[이 함수는 각 운영 체제 수정 버전에 따라 변경될 수 있습니다. 대신 Microsoft DirectDraw 및 Microsoft Direct3DAPIs를 사용합니다. 이러한 API는 이러한 운영 체제 변경으로부터 애플리케이션을 격리하고 디스플레이 드라이버와 직접 상호 작용하는 데 관련된 다른 많은 어려움을 숨깁니다.]

NtGdiDdQueryDirectDrawObject 함수에 대한 래퍼이며 이전에 만든 커널 모드 표현에서 기능을 쿼리합니다.

GdiEntry2 는 이 함수의 별칭으로 정의됩니다.

구문

BOOL DdQueryDirectDrawObject(
  LPDDRAWI_DIRECTDRAW_GBL    pDirectDrawGlobal,
  LPDDHALINFO                pHalInfo,
  LPDDHAL_DDCALLBACKS        pDDCallbacks,
  LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
  LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
  LPD3DHAL_CALLBACKS         pD3dCallbacks,
  LPD3DHAL_GLOBALDRIVERDATA  pD3dDriverData,
  LPDDHAL_DDEXEBUFCALLBACKS  pD3dBufferCallbacks,
  LPDDSURFACEDESC            pD3dTextureFormats,
  LPDWORD                    pdwFourCC,
  LPVIDMEM                   pvmList
);

매개 변수

pDirectDrawGlobal

이전에 DdCreateDirectDrawObject를 사용하여 커널 쪽 개체를 만든 사용자 모드 DirectDraw 개체에 대한 포인터입니다.

pHalInfo

디바이스의 기능으로 채워질 DDHALINFO 구조체에 대한 포인터입니다. 자세한 내용은 DDK 설명서를 참조하세요.

pDDCallbacks

콜백 포인터 테이블에 대한 포인터입니다. 테이블은 DirectDraw 표시 드라이버를 모방하는 Gdi32.dll 내의 함수에 대한 포인터로 채워집니다. 이 콜백 테이블은 DDK 설명서에 설명된 DD_CALLBACKS 구조체에 매핑되는 DDHAL_DDCALLBACKS 구조와 동일합니다.

pDDSurfaceCallbacks

표면 콜백 포인터 테이블에 대한 포인터입니다. 테이블은 DirectDraw 표시 드라이버를 모방하는 Gdi32.dll 내의 함수에 대한 포인터로 채워집니다. 이 콜백 테이블은 DDK 설명서에 설명된 DD_SURFACECALLBACKS 구조체에 매핑되는 DDHAL_DDSURFACECALLBACKS 구조와 동일합니다.

pDDPaletteCallbacks

색상표 콜백 포인터 테이블에 대한 포인터입니다. 테이블은 DirectDraw 표시 드라이버를 모방하는 Gdi32.dll 내의 함수에 대한 포인터로 채워집니다. 이 콜백 테이블은 DDK 설명서에 설명된 DD_PALETTECALLBACKS 구조체에 매핑되는 DDHAL_DDPALETTECALLBACKS 구조와 동일합니다.

pD3dCallbacks

Direct3D 콜백 포인터 테이블에 대한 포인터입니다. 테이블은 Direct3D 디스플레이 드라이버를 모방하는 Gdi32.dll 내의 함수에 대한 포인터로 채워집니다. 이 콜백 테이블은 DDK 설명서에 설명된 D3DHAL_CALLBACKS 구조와 동일합니다.

pD3dDriverData

DDK 설명서에 설명된 대로 D3DHAL_GLOBALDRIVERDATA 데이터에 대한 포인터입니다.

pD3dBufferCallbacks

콜백 포인터 테이블에 대한 포인터입니다. 테이블은 Direct3D 디스플레이 드라이버를 모방하는 Gdi32.dll 내의 함수에 대한 포인터로 채워집니다. 이 콜백 테이블은 DD_D3DBUFCALLBACKS XxxD3DBuffer 멤버가 DDHAL_DDEXEBUFCALLBACKS XxxExecuteBuffer로 대체된다는 점을 제외하고 DDK 설명서에 설명된 DD_D3DBUFCALLBACKS 구조에 매핑되는 DDHAL_DDEXEBUFCALLBACKS 구조와 동일합니다.

pD3dTextureFormats

허용되는 텍스처 형식 집합을 정의하는 DDSURFACEDESC 구조체 배열에 대한 포인터입니다.

pdwFourCC

지원되는 FOURCC(4자 코드) 표면 형식 목록에 대한 포인터입니다. NULL일 수 있습니다.

pvmList

비디오 메모리 힙 설명자 목록에 대한 포인터입니다. NULL일 수 있습니다. 비디오 메모리 관리는 커널 모드 내에서 완전히 처리되므로 이 매개 변수는 사용되지 않습니다.

반환 값

성공하면 이 함수는 TRUE를 반환합니다 . 그렇지 않으면 FALSE를 반환 합니다.

설명

이 함수에 대한 호출은 2단계 프로세스에서 수행되도록 설계되었습니다. 첫 번째 단계에서 는 pdwFourCC, pvmListpD3dTextureFormatsNULL이어야 하고 DdQueryDirectDrawObjectDDHALINFO를 채웁니다. ddCaps.dwNumFourCCCodes, DDHALINFO. vmiData. dwNumHeapsD3DHAL_GLOBALDRIVERDATA. 반환할 항목 수가 포함된 dwNumTextureFormats 입니다. 두 번째 호출에서 호출자는 표시된 크기의 배열을 할당하고 pdwFourCC, pvmListpD3dTextureFormats 매개 변수의 NULL 값 대신 해당 포인터를 전달해야 합니다. 그러면 배열이 적절한 데이터로 채워집니다.

애플리케이션은 DirectDraw 및 Direct3D API를 사용하여 그래픽 디바이스 개체를 만들고 관리하는 것이 좋습니다. 이러한 구문은 간소화되고 운영 체제 독립적인 방식으로 디바이스 만들기 프로세스를 추상화합니다.

요구 사항

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

추가 정보

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