Bagikan melalui


struktur DD_GETDRIVERINFO2DATA (d3dhal.h)

DirectX 8.0 dan versi yang lebih baru saja.

DD_GETDRIVERINFO2DATA diteruskan di anggota lpvData dari struktur DD_GETDRIVERINFODATA saat GUID_GetDriverInfo2 ditentukan dalam anggota DD_GETDRIVERINFODATA guidInfo dalam panggilan DdGetDriverInfo .

Sintaks

typedef struct _DD_GETDRIVERINFO2DATA {
  DWORD dwReserved;
  DWORD dwMagic;
  DWORD dwType;
  DWORD dwExpectedSize;
} DD_GETDRIVERINFO2DATA;

Anggota

dwReserved

Menentukan bidang yang dipesan. Driver tidak boleh membaca atau menulis.

dwMagic

Menentukan angka ajaib. Memiliki nilai D3DGDI2_MAGIC jika ini adalah panggilan GetDriverInfo2 . Jika tidak, struktur ini, pada kenyataannya, panggilan DD_STEREOMODE .

dwType

Menentukan jenis informasi yang diminta, yang dapat berisi salah satu nilai D3DGDI2_TYPE_Xxx berikut. Driver seharusnya hanya membaca (tidak menulis) anggota ini.

Nilai Makna
D3DGDI2_TYPE_DEFER_AGP_FREES Hanya sistem operasi berbasis NT.
Digunakan untuk memberi tahu driver bahwa driver harus menangani penghancuran memori AGP dengan benar untuk permukaan. Runtime menyediakan penunjuk ke struktur DD_FREE_DEFERRED_AGP_DATA di bidang lpvData dari struktur data DD_GETDRIVERINFODATA.
Driver terkadang menerima pemberitahuan ini sebelum perubahan mode tampilan terjadi. Runtime hanya mengirim pemberitahuan ini jika digunakan untuk melakukan perubahan mode tampilan. Driver harus memeriksa pengidentifikasi proses (PID) dari proses yang menghancurkan permukaan terhadap proses yang menciptakan permukaan. Jika PID berbeda, driver mungkin tidak boleh menghancurkan pemetaan mode pengguna memori AGP karena aplikasi mungkin masih menggunakan memori.
D3DGDI2_TYPE_DEFERRED_AGP_AWARE Hanya sistem operasi berbasis NT.
Digunakan untuk memberi tahu driver bahwa runtime mengirim D3DGDI2_TYPE_FREE_DEFERRED_AGP dan D3DGDI2_TYPE_DEFER_AGP_FREES pemberitahuan pada waktu yang tepat (seperti, setelah kunci memori AGP terakhir yang beredar dirilis). Runtime menyediakan penunjuk ke struktur DD_DEFERRED_AGP_AWARE_DATA di bidang lpvData dari struktur data DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_DXVERSION Digunakan untuk memberi tahu driver tentang versi runtime DX saat ini yang digunakan oleh aplikasi. Runtime menyediakan penunjuk ke struktur DD_DXVERSION di bidang lpvData dari struktur data DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_FREE_DEFERRED_AGP Hanya sistem operasi berbasis NT.
Digunakan untuk memberi tahu driver bahwa sekarang aman untuk menghancurkan semua pemetaan mode pengguna dari memori AGP . Driver mempertahankan pemetaan mode pengguna ini ketika permukaan dihancurkan dan menerima pemberitahuan D3DGDI2_TYPE_DEFER_AGP_FREES. Runtime menyediakan penunjuk ke struktur DD_FREE_DEFERRED_AGP_DATA di bidang lpvData dari struktur data DD_GETDRIVERINFODATA.
Driver menerima pemberitahuan ini ketika semua perangkat tampilan dalam proses berhenti menggunakan permukaan, tekstur, buffer vertex, dan buffer indeks yang dikunci pada saat mode tampilan berubah.
D3DGDI2_TYPE_GETADAPTERGROUP DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk identitas grup adaptor yang merupakan bagian dari kartu video multi-kepalanya. Grup ini berbagi perangkat keras video seperti memori video dan akselerator 3D. Driver harus mengatur struktur data yang diacu oleh bidang lpvData dari struktur data DD_GETDRIVERINFODATA ke DD_GETADAPTERGROUPDATA.
D3DGDI2_TYPE_GETD3DCAPS8 Jenis ini menunjukkan bahwa permintaan runtime untuk menerima struktur D3DCAPS8 memberikan kemampuan gaya DirectX 8.0 perangkat. Driver harus menyalin struktur D3DCAPS8 yang diinisialisasi ke bidang lpvData dari struktur DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_GETD3DCAPS9 Diperlukan hanya untuk DirectX 9.0 dan versi yang lebih baru.
Jenis ini menunjukkan bahwa permintaan runtime untuk menerima struktur D3DCAPS9 memberikan kemampuan gaya DirectX 9.0 perangkat. Driver harus menyalin struktur D3DCAPS9 yang diinisialisasi ke bidang lpvData dari struktur DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_GETD3DQUERY DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk informasi tentang jenis kueri tertentu yang didukungnya. Driver harus mengatur struktur data yang ditunjukkan oleh bidanglpvData dari struktur data DD_GETDRIVERINFODATA ke DD_GETD3DQUERYDATA.
D3DGDI2_TYPE_GETD3DQUERYCOUNT DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk jumlah jenis kueri yang didukungnya. Driver harus mengatur struktur data yang diacu oleh bidang lpvData dari struktur data DD_GETDRIVERINFODATA ke DD_GETD3DQUERYCOUNTDATA.
D3DGDI2_TYPE_GETDDIVERSION DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk versi DDI yang didukung driver; versi DDI ini, pada gilirannya, tergantung pada versi DirectX yang membuat permintaan ini. Driver harus mengatur anggota dwDDIVersion dari struktur DD_GETDDIVERSIONDATA , yang ditujukan bidang lpvData dari struktur data DD_GETDRIVERINFODATA, ke versi DDI yang sesuai.
D3DGDI2_TYPE_GETEXTENDEDMODE DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk informasi tentang mode tampilan diperluas tertentu yang didukungnya. Driver harus mengatur struktur data yang diacu oleh bidang lpvData dari struktur data DD_GETDRIVERINFODATA ke DD_GETEXTENDEDMODEDATA.
D3DGDI2_TYPE_GETEXTENDEDMODECOUNT DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk jumlah mode tampilan yang diperluas yang didukungnya. Driver harus mengatur struktur data yang diacu oleh bidang lpvData dari struktur data DD_GETDRIVERINFODATA ke DD_GETEXTENDEDMODECOUNTDATA.
D3DGDI2_TYPE_GETFORMAT Digunakan untuk mengkueri format permukaan tertentu dari driver. Struktur data yang ditunjukkan oleh lpvDatafield dari struktur data DD_GETDRIVERINFODATA DD_GETFORMATDATA .
D3DGDI2_TYPE_GETFORMATCOUNT Digunakan untuk meminta jumlah format permukaan gaya DirectX 8.0 dan yang lebih baru yang didukung oleh driver. Struktur data yang ditujukkan oleh bidang thelpvData dari DD_GETDRIVERINFODATA DD_GETFORMATCOUNTDATA.
D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS DirectX 9.0 dan versi yang lebih baru saja.
Digunakan untuk mengkueri driver untuk jumlah tingkat kualitas beberapa sampel untuk format target render tertentu yang didukungnya. Apakah perangkat tampilan mendukung multisampling yang dapat ditutupi atau dapat di-submask, driver untuk perangkat harus memberikan jumlah tingkat kualitas untuk jenis D3DMULTISAMPLE_NONMASKABLE beberapa sampel. Driver harus mengatur struktur data yang diacu oleh bidang lpvData dari struktur data DD_GETDRIVERINFODATA ke DD_MULTISAMPLEQUALITYLEVELSDATA.

dwExpectedSize

Menentukan ukuran yang diharapkan, dalam byte, dari informasi yang diminta. Driver seharusnya hanya membaca (tidak menulis) anggota ini.

Keterangan

Anggota dwExpectedSize dari struktur DD_GETDRIVERINFODATA tidak digunakan saat permintaan GetDriverInfo2 sedang dibuat. Nilainya tidak ditentukan dalam kasus ini dan harus diabaikan. Sebagai gantinya, ukuran data yang diharapkan aktual ditemukan di anggota dwExpectedSize dari DD_GETDRIVERINFO2DATA.

Fragmen kode berikut menunjukkan cara menangani GetDriverInfo2:

D3DCAPS8 myD3DCaps8 = { ... };

DWORD CALLBACK
DdGetDriverInfo(LPDDHAL_GETDRIVERINFODATA lpData)
{
  if (MATCH_GUID((lpData->guidInfo), GUID_GetDriverInfo2))
  {
    ASSERT(NULL != lpData);
    ASSERT(NULL != lpData->lpvData);

    // Is this a call to GetDriverInfo2 or DDStereoMode?
 if (((DD_GETDRIVERINFO2DATA*)(lpData->lpvData))->dwMagic
      == D3DGDI2_MAGIC)
 {
      // Yes, it's a call to GetDriverInfo2, fetch the
 // DD_GETDRIVERINFO2DATA data structure.
      DD_GETDRIVERINFO2DATA* pgdi2 = lpData->lpvData;
 ASSERT(NULL != pgdi2);
      // What type of request is this?
      switch (pgdi2->dwType)
      {
        case D3DGDI2_TYPE_GETD3DCAPS8:
        {
          // The runtime is requesting the DX8 D3D caps
          // so copy them over now. It should be noted
          // that the dwExpectedSize field of
          // DD_GETDRIVERINFODATA is not used for
          // GetDriverInfo2 calls and should be ignored.
          size_t copySize = min(
            sizeof(myD3DCaps8), pgdi2->dwExpectedSize);
          memcpy(lpData->lpvData, &myD3DCaps8, copySize);
          lpData->dwActualSize = copySize;
          lpData->ddRVal       = DD_OK;
          return DDHAL_DRIVER_HANDLED;
        }
        default:
          // For any other GetDriverInfo2 types not handled
          // or understood by the driver set a ddRVal of
          // DDERR_CURRENTLYNOTAVAIL and return
          // DDHAL_DRIVER_HANDLED.
          return DDHAL_DRIVER_HANDLED;
      }
    }
    else
    {
      // It must be a call to request for stereo mode support.
 // Fetch the stereo mode data
      DD_STEREOMODE* pStereoMode = lpData->lpvData;
 ASSERT(NULL != pStereoMode);

      // Process the stereo mode request...
      lpData->dwActualSize = sizeof(DD_STEREOMODE);
      lpData->ddRVal       = DD_OK;
      return DDHAL_DRIVER_HANDLED;
    }
  }

  // Handle any other device GUIDs...

} // DdGetDriverInfo

Untuk informasi selengkapnya tentang D3DCAPS8 dan D3DCAPS9, lihat dokumentasi DirectX SDK.

Persyaratan

Persyaratan Nilai
Header d3dhal.h (termasuk D3dhal.h)

Lihat juga

DD_DEFERRED_AGP_AWARE_DATA

DD_DXVERSION

DD_FREE_DEFERRED_AGP_DATA

DD_GETADAPTERGROUPDATA

DD_GETD3DQUERYCOUNTDATA

DD_GETD3DQUERYDATA

DD_GETDDIVERSIONDATA

DD_GETDRIVERINFODATA

DD_GETEXTENDEDMODECOUNTDATA

DD_GETEXTENDEDMODEDATA

DD_GETFORMATCOUNTDATA

DD_GETFORMATDATA

DD_MULTISAMPLEQUALITYLEVELSDATA

DD_STEREOMODE

DdGetDriverInfo