다음을 통해 공유


NtGdiDdQueryDirectDrawObject 함수

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

이전에 만든 Microsoft DirectDraw 개체의 커널 모드 표현에서 해당 기능을 쿼리합니다.

구문

BOOL APIENTRY NtGdiDdQueryDirectDrawObject(
  _In_  HANDLE                      hDirectDrawLocal,
  _Out_ DD_HALINFO                  *pHalInfo,
        DWORD                       *pCallBackFlags,
  _Out_ LPD3DNTHAL_CALLBACKS        puD3dCallbacks,
  _Out_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
  _Out_ PDD_D3DBUFCALLBACKS         puD3dBufferCallbacks,
  _Out_ LPDDSURFACEDESC             puD3dTextureFormats,
  _Out_ DWORD                       *puNumHeaps,
  _Out_ VIDEOMEMORY                 *puvmList,
  _Out_ DWORD                       *puNumFourCC,
  _Out_ DWORD                       *puFourCC
);

매개 변수

hDirectDrawLocal [in]

이전에 만든 커널 모드 DirectDraw 디바이스에 대한 핸들입니다.

pHalInfo [out]

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

pCallBackFlags

드라이버 보고 콜백 플래그를 저장하는 호출자 제공 버퍼에 대한 포인터입니다. 버퍼의 크기는 3*sizeof(DWORD)여야 하며 콜백 플래그는 다음 순서로 저장됩니다. pCallBackFlags[0] DD_CALLBACKS 플래그의 경우, DD_SURFACECALLBACKS 플래그의 경우 pCallBackFlags[1] 및 DD_PALETTECALLBACKS 플래그의 경우 pCallBackFlags[2]입니다. 자세한 내용은 DDK 설명서를 참조하세요.

puD3dCallbacks [out]

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

puD3dDriverData [out]

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

puD3dBufferCallbacks [out]

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

puD3dTextureFormats [out]

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

puNumHeaps [out]

DD_HALINFOdwNumHeaps 멤버에 대한 포인터입니다. vmiData. dwNumHeaps 멤버는 puvmList의 메모리 힙 수를 지정합니다. 자세한 내용은 DDK 설명서를 참조하세요.

puvmList [out]

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

puNumFourCC [out]

DD_HALINFOpuNumFourCCCodes 멤버에 대한 포인터입니다. ddCaps. puNumFourCCCodes 멤버는 드라이버가 지원하는 FOURCC(4자 코드) 코드 수를 지정합니다. 자세한 내용은 DDK 설명서를 참조하세요.

puFourCC [out]

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

반환 값

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

설명

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

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

요구 사항

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

추가 정보

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

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject