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 结构调用驱动程序的清理函数,这些结构在应用程序终止前不会被删除。
此结构提供一种锁定机制,用于对关联的资源进行独占访问。
要求
要求 | 值 |
---|---|
Header | winddi.h (包括 Winddi.h) |