Partager via


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)

Voir aussi

EngCreateDriverObj

EngDeleteDriverObj

EngLockDriverObj

EngUnlockDriverObj