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