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