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 を含む) |