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
드라이버의 프라이빗 instance 데이터에 대한 포인터입니다. 즉, 이 멤버는 드라이버의 PDEV를 식별합니다.
설명
DRIVEROBJ 구조를 사용하면 디스플레이 드라이버가 프로세스별 리소스 관리에서 GDI 서비스를 요청할 수 있습니다. DRIVEROBJ 구조를 만들면 디스플레이 드라이버는 애플리케이션이 종료될 때 리소스가 해제되도록 할 수 있습니다.
일부 드라이버는 이스케이프 지원에서 애플리케이션을 대신하여 리소스를 할당합니다. 이러한 경우 DRIVEROBJ 구조체는 애플리케이션이 종료되면 드라이버에 알릴 수 있는 수단을 제공합니다. GDI는 애플리케이션이 종료되기 전에 삭제되지 않은 애플리케이션 컨텍스트에 할당된 각 DRIVEROBJ 구조체에 대해 드라이버의 정리 함수를 호출합니다.
이 구조체는 연결된 리소스에 대한 단독 액세스를 위한 잠금 메커니즘을 제공합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | winddi.h(Winddi.h 포함) |