共用方式為


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 ) ,並依下列順序儲存回呼旗標:DD_CALLBACKS中旗標的 pCallBackFlags[0]、DD_SURFACECALLBACKS中旗標的 pCallBackFlags[1] 和DD_PALETTECALLBACKS 中旗標的 pCallBackFlags[2]。 如需詳細資訊,請參閱 DDK 檔。

puD3dCallbacks [out]

Direct3D 回呼指標的資料表指標。 資料表會填入Gdi32.dll內模擬 Direct3D 顯示器驅動程式之函式的指標。 此回呼資料表與 DDK 檔中討論的D3DHAL_D3DCALLBACKS結構相同。

puD3dDriverData [out]

D3DHAL_GLOBALDRIVERDATA資料的指標,如 DDK 檔中所述。

puD3dBufferCallbacks [out]

回呼指標資料表的指標。 資料表會填入Gdi32.dll內模擬 Direct3D 顯示器驅動程式之函式的指標。 此回呼資料表與DDHAL_DDEXEBUFCALLBACKS結構相同,其對應至 DDK 檔中討論的 DD_D3DBUFCALLBACKS 結構,不同之處在于 DD_D3DBUFCALLBACKS 中的成員 XxxD3DBuffer 會取代為 DDHAL_DDEXEBUFCALLBACKS 中的 XxxExecuteBuffer。

puD3dTextureFormats [out]

定義允許紋理格式集合之 DDSURFACEDESC 結構的陣列指標。

puNumHeaps [out]

DD_HALINFO dwNumHeaps成員的指標。vmiDatadwNumHeaps成員會指定puvmList中的記憶體堆積數目。 如需詳細資訊,請參閱 DDK 檔。

puvmList [out]

影片記憶體堆積描述項清單的指標。 可以是 Null。 不會使用此參數,因為視訊記憶體管理會在核心模式中完全處理。

puNumFourCC [out]

DD_HALINFO puNumFourCCCodes成員的指標ddCapspuNumFourCCCodes成員會指定驅動程式支援的四個字元代碼 (FOURCC) 碼的數目。 如需詳細資訊,請參閱 DDK 檔。

puFourCC [out]

支援的 四個字元代碼清單指標, (FOURCC) 介面格式。 可以是 Null

傳回值

如果成功,此函式會傳回 TRUE;否則會傳回 FALSE

備註

此函式的呼叫是設計成在雙步驟程式中進行。 在第一個步驟中, puFourCCpuvmListpuD3dTextureFormats 應該是 Null而 DdQueryDirectDrawObject 將會填入 DD_HALINFOddCapsdwNumFourCCCodesDD_HALINFOvmiDatadwNumHeapsD3DHAL_GLOBALDRIVERDATAdwNumTextureFormats ,其中包含要傳回的專案數。 在第二個呼叫中,呼叫端應該配置指定大小的陣列,並傳遞這些指標,而不是puFourCCpuvmListpuD3dTextureFormats參數中的Null值。 陣列接著會填入適當的資料。

建議您使用 DirectDraw 和 Direct3D API 來建立和管理圖形裝置物件。 這些建構會以簡化且與作業系統無關的方式抽象化裝置建立程式。

規格需求

需求
最低支援的用戶端
Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Ntgdi.h

另請參閱

圖形低階用戶端支援

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject