Структура DRIVEROBJ (winddi.h)
Структура DRIVEROBJ используется для отслеживания ресурса, выделенного драйвером, который требует использования служб GDI. Структура DRIVEROBJ позволяет драйверу дисплея запрашивать службу GDI для управления ресурсами для каждого процесса. Создавая структуру DRIVEROBJ, драйвер отображения может гарантировать, что ресурсы будут освобождены при завершении работы приложения.
Синтаксис
typedef struct _DRIVEROBJ {
PVOID pvObj;
FREEOBJPROC pFreeProc;
HDEV hdev;
DHPDEV dhpdev;
} DRIVEROBJ;
Члены
pvObj
Указатель на ресурс драйвера, который будет отслеживаться структурой DRIVEROBJ. Ресурс связан с текущим клиентским процессом.
pFreeProc
Указатель на функцию обратного вызова, предоставляемую драйвером, которая освобождает ресурс, на который указывает pvObj. Эта функция обратного вызова имеет следующий прототип:
BOOL (CALLBACK * FREEOBJPROC) (DRIVEROBJ * pDriverObj);
Функция обратного вызова возвращает значение TRUE , если она может освободить ресурс, и false в противном случае.
hdev
Дескриптор GDI физическому устройству, связанному с объектом .
dhpdev
Указатель на данные частного экземпляра драйвера; то есть этот элемент идентифицирует PDEV драйвера.
Комментарии
Структура DRIVEROBJ позволяет драйверу дисплея запрашивать службу GDI для управления ресурсами для каждого процесса. Создавая структуру DRIVEROBJ, драйвер отображения может гарантировать, что ресурсы будут освобождены при завершении работы приложения.
Некоторые драйверы в их поддержке Escape выделяют ресурсы от имени приложений. В таких случаях структура DRIVEROBJ предоставляет приложению средства для уведомления драйвера о завершении работы. GDI вызывает функцию очистки драйвера для каждой структуры DRIVEROBJ, выделенной в контексте приложения, которая не удаляется до завершения работы приложения.
Эта структура предоставляет механизм блокировки для монопольного доступа к связанному ресурсу.
Требования
Требование | Значение |
---|---|
Заголовок | winddi.h (включая Winddi.h) |