Share via


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 포함)

추가 정보

EngCreateDriverObj

EngDeleteDriverObj

EngLockDriverObj

EngUnlockDriverObj