Fungsi NtGdiDdQueryDirectDrawObject

[Fungsi ini dapat berubah dengan setiap revisi sistem operasi. Sebagai gantinya, gunakan DirectDraw dan Microsoft Direct3DAPIs; API ini mengisolasi aplikasi dari perubahan sistem operasi tersebut, dan menyembunyikan banyak kesulitan lain yang terlibat dalam berinteraksi langsung dengan pengandar tampilan.]

Mengkueri representasi mode kernel yang dibuat sebelumnya dari objek Microsoft DirectDraw untuk kemampuannya.

Sintaks

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
);

Parameter

hDirectDrawLocal [in]

Tangani ke perangkat DirectDraw mode kernel yang dibuat sebelumnya.

pHalInfo [out]

Arahkan ke struktur DD_HALINFO yang akan diisi dengan kemampuan perangkat. Lihat dokumentasi DDK untuk detailnya.

pCallBackFlags

Arahkan ke buffer yang disediakan penelepon yang menyimpan bendera panggilan balik yang dilaporkan driver. Buffer harus berukuran 3*sizeof(DWORD) dan menyimpan bendera panggilan balik dalam urutan berikut: pCallBackFlags[0] untuk bendera di DD_CALLBACKS, pCallBackFlags[1] untuk bendera di DD_SURFACECALLBACKS, dan pCallBackFlags[2] untuk bendera di DD_PALETTECALLBACKS. Lihat dokumentasi DDK untuk detailnya.

puD3dCallbacks [out]

Penunjuk ke tabel penunjuk panggilan balik Direct3D. Tabel diisi dengan pointer ke fungsi dalam Gdi32.dll yang meniru driver tampilan Direct3D. Tabel panggilan balik ini identik dengan struktur D3DHAL_D3DCALLBACKS yang dibahas dalam dokumentasi DDK.

puD3dDriverData [out]

Arahkan ke data D3DHAL_GLOBALDRIVERDATA , seperti yang dijelaskan dalam dokumentasi DDK.

puD3dBufferCallbacks [out]

Arahkan ke tabel penunjuk panggilan balik. Tabel diisi dengan pointer ke fungsi dalam Gdi32.dll yang meniru driver tampilan Direct3D. Tabel panggilan balik ini identik dengan struktur DDHAL_DDEXEBUFCALLBACKS, yang memetakan ke struktur DD_D3DBUFCALLBACKS yang dibahas dalam dokumentasi DDK, kecuali bahwa anggota XxxD3DBuffer di DD_D3DBUFCALLBACKS diganti dengan XxxExecuteBuffer di DDHAL_DDEXEBUFCALLBACKS.

puD3dTextureFormats [out]

Penunjuk ke array struktur DDSURFACEDESC yang menentukan kumpulan format tekstur yang diizinkan.

puNumHeaps [out]

Arahkan ke anggota dwNumHeapsdari DD_HALINFO. vmiData. Anggota dwNumHeaps menentukan jumlah timbunan memori dalam puvmList. Lihat dokumentasi DDK untuk detailnya.

puvmList [out]

Arahkan ke daftar deskriptor timbunan memori video. Bisa NULL. Parameter ini tidak digunakan karena manajemen memori video ditangani sepenuhnya dalam mode kernel.

puNumFourCC [out]

Arahkan ke anggota DD_HALINFO puNumFourCCCodes.ddCaps. Anggota puNumFourCCCodes menentukan jumlah kode Empat Karakter (FOURCC) yang didukung driver. Lihat dokumentasi DDK untuk detailnya.

puFourCC [out]

Penunjuk ke daftar format permukaan Kode Empat Karakter (FOURCC) yang didukung. Bisa NULL.

Mengembalikan nilai

Jika berhasil, fungsi ini mengembalikan TRUE; jika tidak, ia mengembalikan FALSE.

Keterangan

Panggilan ke fungsi ini dirancang untuk dilakukan dalam proses dua langkah. Pada langkah pertama, puFourCC, puvmList dan puD3dTextureFormats harus NULL, dan DdQueryDirectDrawObject akan mengisi DD_HALINFO. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps, dan D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats dengan jumlah entri yang akan dikembalikan. Dalam panggilan kedua, pemanggil harus mengalokasikan array dengan ukuran yang ditunjukkan dan meneruskan pointer tersebut alih-alih nilai NULL di parameter puFourCC, puvmList , dan puD3dTextureFormats . Array kemudian akan diisi dengan data yang sesuai.

Aplikasi disarankan untuk menggunakan API DirectDraw dan Direct3D untuk membuat dan mengelola objek perangkat grafis. Konstruksi ini mengabstraksi proses pembuatan perangkat dengan cara yang disederhanakan dan independen sistem operasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Ntgdi.h

Lihat juga

Dukungan Klien Tingkat Rendah Grafis

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject