Condividi tramite


Struttura DRIVEROBJ (winddi.h)

La struttura DRIVEROBJ viene usata per tenere traccia di una risorsa, allocata da un driver, che richiede l'uso dei servizi GDI. Una struttura DRIVEROBJ consente a un driver di visualizzazione di richiedere il servizio GDI nella gestione delle risorse per processo. Creando una struttura DRIVEROBJ, un driver di visualizzazione può garantire che le risorse vengano rilasciate al termine di un'applicazione.

Sintassi

typedef struct _DRIVEROBJ {
  PVOID       pvObj;
  FREEOBJPROC pFreeProc;
  HDEV        hdev;
  DHPDEV      dhpdev;
} DRIVEROBJ;

Members

pvObj

Puntatore alla risorsa driver che verrà rilevata dalla struttura DRIVEROBJ. La risorsa è associata al processo client corrente.

pFreeProc

Puntatore a una funzione di callback fornita dal driver che libera la risorsa a cui punta pvObj. Questa funzione di callback ha il prototipo seguente:

BOOL (CALLBACK * FREEOBJPROC) (DRIVEROBJ * pDriverObj);

La funzione di callback restituisce TRUE se è in grado di liberare la risorsa e FALSE in caso contrario.

hdev

Handle GDI per il dispositivo fisico associato all'oggetto .

dhpdev

Puntatore ai dati dell'istanza privata del driver; ovvero, questo membro identifica il PDEV del driver.

Commenti

Una struttura DRIVEROBJ consente a un driver di visualizzazione di richiedere il servizio GDI nella gestione delle risorse per processo. Creando una struttura DRIVEROBJ, un driver di visualizzazione può garantire che le risorse vengano rilasciate al termine di un'applicazione.

Alcuni driver, nel supporto di Escape, allocano le risorse per conto delle applicazioni. In questi casi, la struttura DRIVEROBJ consente all'applicazione di notificare al driver quando termina. GDI chiamerà la funzione di pulizia del driver per ogni struttura DRIVEROBJ allocata nel contesto di un'applicazione che non viene eliminata prima che l'applicazione termini.

Questa struttura fornisce un meccanismo di blocco per l'accesso esclusivo alla risorsa associata.

Requisiti

Requisito Valore
Intestazione winddi.h (include Winddi.h)

Vedi anche

EngCreateDriverObj

EngDeleteDriverObj

EngLockDriverObj

EngUnlockDriverObj