Structure DRIVEROBJ (winddi.h)
La structure DRIVEROBJ est utilisée pour suivre une ressource, allouée par un pilote, qui nécessite l’utilisation des services GDI. Une structure DRIVEROBJ permet à un pilote d’affichage de demander le service GDI dans la gestion des ressources par processus. En créant une structure DRIVEROBJ, un pilote d’affichage peut garantir que les ressources seront libérées à la fin d’une application.
Syntaxe
typedef struct _DRIVEROBJ {
PVOID pvObj;
FREEOBJPROC pFreeProc;
HDEV hdev;
DHPDEV dhpdev;
} DRIVEROBJ;
Membres
pvObj
Pointeur vers la ressource de pilote qui sera suivie par la structure DRIVEROBJ. La ressource est associée au processus client actuel.
pFreeProc
Pointeur vers une fonction de rappel fournie par le pilote qui libère la ressource pointée par pvObj. Cette fonction de rappel a le prototype suivant :
BOOL (CALLBACK * FREEOBJPROC) (DRIVEROBJ * pDriverObj);
La fonction de rappel retourne TRUE si elle est en mesure de libérer la ressource, et FALSE dans le cas contraire.
hdev
Handle GDI sur l’appareil physique associé à l’objet.
dhpdev
Pointeur vers les données de instance privées du pilote ; autrement dit, ce membre identifie le PDEV du pilote.
Remarques
Une structure DRIVEROBJ permet à un pilote d’affichage de demander le service GDI dans la gestion des ressources par processus. En créant une structure DRIVEROBJ, un pilote d’affichage peut garantir que les ressources seront libérées à la fin d’une application.
Certains pilotes, dans leur prise en charge d’Échappement, allouent des ressources pour le compte des applications. Dans ce cas, la structure DRIVEROBJ permet à l’application d’avertir le pilote lorsqu’il se termine. GDI appelle la fonction de nettoyage du pilote pour chaque structure DRIVEROBJ allouée dans le contexte d’une application qui n’est pas supprimée avant la fin de l’application.
Cette structure fournit un mécanisme de verrouillage pour l’accès exclusif à la ressource associée.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | winddi.h (inclure Winddi.h) |