Partager via


structure DD_GETDRIVERINFO2DATA (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 peuvent 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.
Est utilisé pour avertir le pilote qu’il doit gérer correctement la destruction de 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’une modification du mode d’affichage ne se produise. Le runtime envoie uniquement cette notification s’il doit être utilisé pour effectuer la modification du mode d’affichage. Les pilotes doivent vérifier l’identificateur de processus (PID) du processus détruisant 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 D3DGDI2_TYPE_FREE_DEFERRED_AGP et D3DGDI2_TYPE_DEFER_AGP_FREES notifications au moment approprié (par exemple, après la dernière mémoire AGP en attente verrou est libéré). 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 Est utilisé pour notifier 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.
Est utilisé pour 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 appareils d’affichage au sein du processus s’arrêtent à l’aide de surfaces, de textures, de mémoires tampons de vertex et de mémoires tampons d’index verrouillées au moment de la modification du mode d’affichage.
D3DGDI2_TYPE_GETADAPTERGROUP DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote pour l’identité du groupe d’adaptateurs qui font partie de sa 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 pointée par le champ lpvData de la structure de données DD_GETDRIVERINFODATA sur DD_GETADAPTERGROUPDATA.
D3DGDI2_TYPE_GETD3DCAPS8 Ce type indique que les demandes d’exécution pour recevoir une structure D3DCAPS8 donnant les fonctionnalités de style DirectX 8.0 de l’appareil. Le pilote doit copier une structure de 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 les demandes d’exécution pour recevoir une structure D3DCAPS9 donnant les fonctionnalités de style DirectX 9.0 de l’appareil. Le pilote doit copier une structure de 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 champ thelpvData 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 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.
Permet d’interroger le pilote pour la version de LDI prise en charge par le pilote ; Cette version 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, sur laquelle le champ lpvData du DD_GETDRIVERINFODATA la structure de données pointe vers 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 pour 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 Permet d’interroger un format d’aire particulier à partir du pilote. La structure de données pointée par le champ lpvDatafield de la structure de données DD_GETDRIVERINFODATA est DD_GETFORMATDATA .
D3DGDI2_TYPE_GETFORMATCOUNT Permet de demander le nombre de formats d’aire de style DirectX 8.0 et ultérieur pris en charge par le pilote. La structure de données pointée par le champ thelpvData du DD_GETDRIVERINFODATA est DD_GETFORMATCOUNTDATA.
D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS DirectX 9.0 et versions ultérieures uniquement.
Permet d’interroger le pilote pour le nombre de niveaux de qualité à plusieurs échantillons pour un format de cible de rendu donné qu’il prend en charge. Que l’appareil d’affichage prenne en charge le masquable ou le multisamplage sous-masque, le pilote de l’appareil doit fournir le nombre de niveaux de qualité pour le type de D3DMULTISAMPLE_NONMASKABLE plusieurs échantillons. 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

La dwExpectedSize membre de la structure DD_GETDRIVERINFODATA n’est pas utilisée 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 la dwExpectedSize membre 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 les D3DCAPS8 et les D3DCAPS9, consultez la documentation du Kit de développement logiciel (SDK) DirectX.

Exigences

Exigence Valeur
d’en-tête d3dhal.h (include 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