Поделиться через


Структура 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)

См. также раздел

EngCreateDriverObj

EngDeleteDriverObj

EngLockDriverObj

EngUnlockDriverObj