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)

另请参阅

EngCreateDriverObj

EngDeleteDriverObj

EngLockDriverObj

EngUnlockDriverObj