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