PDD_GETDRIVERINFO fonction de rappel (ddrawint.h)
La fonction DdGetDriverInfo interroge le pilote pour obtenir des fonctionnalités DirectDraw et Direct3D supplémentaires que le pilote prend en charge.
Syntaxe
PDD_GETDRIVERINFO PddGetdriverinfo;
DWORD PddGetdriverinfo(
PDD_GETDRIVERINFODATA unnamedParam1
)
{...}
Paramètres
unnamedParam1
Pointe vers une structure DD_GETDRIVERINFODATA qui contient les informations requises pour exécuter la requête.
Valeur retournée
DdGetDriverInfo doit retourner DDHAL_DRIVER_HANDLED.
Remarques
Les pilotes doivent implémenter DdGetDriverInfo pour exposer les fonctionnalités DirectDraw prises en charge par les pilotes qui ne peuvent pas être retournées via DrvEnableDirectDraw.
La fonction DrvGetDirectDrawInfo du pilote retourne un pointeur vers DdGetDriverInfo dans le membre GetDriverInfo de la structure DD_HALINFO .
Pour informer DirectDraw que le membre GetDriverInfo a été défini correctement, le pilote doit également définir le bit DDHALINFO_GETDRIVERINFOSET du membre dwFlags dans la structure DD_HALINFO.
DdGetDriverInfo doit déterminer si le pilote et son matériel prennent en charge les rappels ou les fonctionnalités demandés par le GUID spécifié. Pour tous les GUID à l’exception de GUID_D3DParseUnknownCommandCallback, si le pilote fournit la prise en charge demandée, il doit définir les membres suivants de la structure DD_GETDRIVERINFODATA :
- Définissez dwActualSize sur la taille en octets de la structure de rappel ou de fonctionnalité retournée par le pilote.
- Dans la mémoire vers laquelle lpvData pointe, initialisez les membres de la structure de rappel ou de capacité qui correspond à la fonctionnalité demandée comme suit :
- Définissez le membre dwSize sur la taille en octets de la structure.
- Pour les rappels, définissez les pointeurs de fonction pour qu’ils pointent vers les rappels implémentés par le pilote et définissez les bits dans le membre dwFlags pour indiquer les fonctions prises en charge par le pilote.
- Pour les fonctionnalités, définissez les membres appropriés de la structure des fonctionnalités avec les valeurs prises en charge par le pilote/périphérique.
- Retournez DD_OK dans ddRVal.
DirectDraw informe le pilote de la quantité de données attendue dans le membre dwExpectedSize de la structure DD_GETDRIVERINFODATA . Le pilote ne doit pas remplir plus de données que dwExpectedSize octets.
Pour éviter les problèmes à l’aide de DdGetDriverInfo :
- N’implémentez pas de dépendances en fonction de l’ordre dans lequel DdGetDriverInfo est appelé. Par exemple, évitez de crocheter les étapes d’initialisation du pilote dans DdGetDriverInfo.
- N’essayez pas de déterminer la version de DirectDraw en fonction des appels à DdGetDriverInfo.
- Ne supposez pas le nombre de fois où DirectDraw appelle le pilote ou le nombre de fois où DirectDraw interroge un GUID donné. Il est possible que DirectDraw sonde le pilote à plusieurs reprises avec le même GUID. L’implémentation d’hypothèses à ce sujet dans le pilote entrave sa compatibilité avec les futurs runtimes.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ddrawint.h (inclure Winddi.h) |