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[데스크톱 앱만] |
헤더 |
|
추가 정보