Partager via


DD_GETDRIVERINFO2DATA structure (d3dhal.h)

DirectX 8.0 et versions ultérieures uniquement.

DD_GETDRIVERINFO2DATA est passé dans le membre lpvData de la structure DD_GETDRIVERINFODATA lorsque GUID_GetDriverInfo2 est spécifié dans le membre guidInfo de DD_GETDRIVERINFODATA dans un appel DdGetDriverInfo .

Syntaxe

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

Membres

dwReserved

Spécifie un champ réservé. Le pilote ne doit pas lire ou écrire.

dwMagic

Spécifie le nombre magique. A la valeur D3DGDI2_MAGIC s’il s’agit d’un appel GetDriverInfo2 . Sinon, cette structure est en fait un appel DD_STEREOMODE .

dwType

Spécifie le type d’informations demandées, qui peut contenir l’une des valeurs D3DGDI2_TYPE_Xxx suivantes. Le pilote doit uniquement lire (pas écrire) ce membre.

Valeur Signification
D3DGDI2_TYPE_DEFER_AGP_FREES Systèmes d’exploitation NT uniquement.
Sert à informer le pilote qu’il doit gérer correctement la destruction de la mémoire AGP pour les surfaces. Le runtime fournit un pointeur vers une structure DD_FREE_DEFERRED_AGP_DATA dans le champ lpvData de la structure de données DD_GETDRIVERINFODATA.
Le pilote reçoit parfois cette notification avant qu’un changement de mode d’affichage ne se produise. Le runtime envoie cette notification uniquement si elle doit être utilisée pour effectuer le changement de mode d’affichage. Les pilotes doivent case activée l’identificateur de processus (PID) du processus qui détruit la surface par rapport au processus qui a créé la surface. Si les PID sont différents, le pilote ne doit probablement pas détruire les mappages en mode utilisateur de la mémoire AGP, car une application peut toujours utiliser la mémoire.
D3DGDI2_TYPE_DEFERRED_AGP_AWARE Systèmes d’exploitation NT uniquement.
Permet d’informer le pilote que le runtime envoie des notifications D3DGDI2_TYPE_FREE_DEFERRED_AGP et D3DGDI2_TYPE_DEFER_AGP_FREES au moment approprié (par exemple, après la libération du dernier verrou de mémoire AGP en suspens). Le runtime fournit un pointeur vers une structure DD_DEFERRED_AGP_AWARE_DATA dans le champ lpvData de la structure de données DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_DXVERSION Permet d’avertir le pilote de la version actuelle du runtime DX utilisée par l’application. Le runtime fournit un pointeur vers une structure DD_DXVERSION dans le champ lpvData de la structure de données DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_FREE_DEFERRED_AGP Systèmes d’exploitation NT uniquement.
Permet d’avertir le pilote qu’il est désormais sûr de détruire tous les mappages en mode utilisateur de la mémoire AGP . Le pilote a conservé ces mappages en mode utilisateur lorsque des surfaces ont été détruites et qu’il a reçu une notification D3DGDI2_TYPE_DEFER_AGP_FREES. Le runtime fournit un pointeur vers une structure DD_FREE_DEFERRED_AGP_DATA dans le champ lpvData de la structure de données DD_GETDRIVERINFODATA.
Le pilote reçoit cette notification lorsque tous les périphériques d’affichage au sein du processus cessent d’utiliser des surfaces, des textures, des tampons de vertex et des mémoires tampons d’index qui étaient verrouillées au moment du changement de mode d’affichage.
D3DGDI2_TYPE_GETADAPTERGROUP DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote pour obtenir l’identité du groupe d’adaptateurs qui font partie de son carte vidéo à plusieurs têtes. Ce groupe partage du matériel vidéo comme la mémoire vidéo et l’accélérateur 3D. Le pilote doit définir la structure de données vers laquelle pointe le champ lpvData de la structure de données DD_GETDRIVERINFODATA sur DD_GETADAPTERGROUPDATA.
D3DGDI2_TYPE_GETD3DCAPS8 Ce type indique que le runtime demande à recevoir une structure de D3DCAPS8 donnant les fonctionnalités de style DirectX 8.0 de l’appareil. Le pilote doit copier une structure D3DCAPS8 initialisée dans le champ lpvData de la structure DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_GETD3DCAPS9 Obligatoire pour DirectX 9.0 et versions ultérieures uniquement.
Ce type indique que le runtime demande à recevoir une structure D3DCAPS9 donnant les fonctionnalités de style DirectX 9.0 de l’appareil. Le pilote doit copier une structure D3DCAPS9 initialisée dans le champ lpvData de la structure DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_GETD3DQUERY DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote pour obtenir des informations sur un type de requête particulier qu’il prend en charge. Le pilote doit définir la structure de données vers laquelle pointe le champlpvData de la structure de données DD_GETDRIVERINFODATA sur DD_GETD3DQUERYDATA.
D3DGDI2_TYPE_GETD3DQUERYCOUNT DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote pour connaître le nombre de types de requêtes qu’il prend en charge. Le pilote doit définir la structure de données vers laquelle pointe le champ lpvData de la structure de données DD_GETDRIVERINFODATA sur DD_GETD3DQUERYCOUNTDATA.
D3DGDI2_TYPE_GETDDIVERSION DirectX 9.0 et versions ultérieures uniquement.
Est utilisé pour interroger le pilote pour obtenir la version de la DDI prise en charge par le pilote ; cette version de DDI, à son tour, dépend de la version de DirectX qui effectue cette requête. Le pilote doit définir le membre dwDDIVersion de la structure DD_GETDDIVERSIONDATA , vers laquelle pointe le champ lpvData de la structure de données DD_GETDRIVERINFODATA, sur la version DDI appropriée.
D3DGDI2_TYPE_GETEXTENDEDMODE DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote pour obtenir des informations sur un mode d’affichage étendu particulier qu’il prend en charge. Le pilote doit définir la structure de données vers laquelle pointe le champ lpvData de la structure de données DD_GETDRIVERINFODATA sur DD_GETEXTENDEDMODEDATA.
D3DGDI2_TYPE_GETEXTENDEDMODECOUNT DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote sur le nombre de modes d’affichage étendus qu’il prend en charge. Le pilote doit définir la structure de données pointée par le champ lpvData de la structure de données DD_GETDRIVERINFODATA sur DD_GETEXTENDEDMODECOUNTDATA.
D3DGDI2_TYPE_GETFORMAT Est utilisé pour interroger un format de surface particulier à partir du pilote. La structure de données pointée par le champ lpvData de la structure de données DD_GETDRIVERINFODATA est DD_GETFORMATDATA .
D3DGDI2_TYPE_GETFORMATCOUNT Permet de demander le nombre de formats de surface de style DirectX 8.0 et ultérieur pris en charge par le pilote. La structure de données pointée par le champlpvData du DD_GETDRIVERINFODATA est DD_GETFORMATCOUNTDATA.
D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote sur le nombre de niveaux de qualité de plusieurs échantillons pour un format de cible de rendu donné qu’il prend en charge. Que le périphérique d’affichage prenne en charge l’échantillonnage multiple masquable ou sous-masquable, le pilote de l’appareil doit fournir le nombre de niveaux de qualité pour le D3DMULTISAMPLE_NONMASKABLE type d’échantillon multiple. Le pilote doit définir la structure de données vers laquelle pointe le champ lpvData de la structure de données DD_GETDRIVERINFODATA sur DD_MULTISAMPLEQUALITYLEVELSDATA.

dwExpectedSize

Spécifie la taille attendue, en octets, des informations demandées. Le pilote doit uniquement lire (pas écrire) ce membre.

Remarques

Le membre dwExpectedSize de la structure DD_GETDRIVERINFODATA n’est pas utilisé lorsqu’une requête GetDriverInfo2 est effectuée. Sa valeur n’est pas définie dans ce cas et doit être ignorée. Au lieu de cela, la taille attendue réelle des données se trouve dans le membre dwExpectedSize de DD_GETDRIVERINFO2DATA.

Le fragment de code suivant montre comment gérer 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

Pour plus d’informations sur D3DCAPS8 et D3DCAPS9, consultez la documentation du Kit de développement logiciel (SDK) DirectX.

Configuration requise

Condition requise Valeur
En-tête d3dhal.h (inclure D3dhal.h)

Voir aussi

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