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, puvmList 및 puD3dTextureFormats 는 NULL이어야 하며 DdQueryDirectDrawObject 는 DD_HALINFO 채웁니다. ddCaps.dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps 및 D3DHAL_GLOBALDRIVERDATA. 반환할 항목 수가 포함된 dwNumTextureFormats 입니다. 두 번째 호출에서 호출자는 지정된 크기의 배열을 할당하고 puFourCC, puvmList 및 puD3dTextureFormats 매개 변수에서 NULL 값 대신 해당 포인터를 전달해야 합니다. 그러면 배열이 적절한 데이터로 채워집니다.

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

요구 사항

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

추가 정보

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

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject