Bagikan melalui


Struktur DRIVEROBJ (winddi.h)

Struktur DRIVEROBJ digunakan untuk melacak sumber daya, yang dialokasikan oleh driver, yang memerlukan penggunaan layanan GDI. Struktur DRIVEROBJ memungkinkan driver tampilan untuk meminta layanan GDI dalam mengelola sumber daya per proses. Dengan membuat struktur DRIVEROBJ, driver tampilan dapat memastikan bahwa sumber daya akan dirilis ketika aplikasi berakhir.

Sintaks

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

Anggota

pvObj

Arahkan ke sumber daya driver yang akan dilacak oleh struktur DRIVEROBJ. Sumber daya dikaitkan dengan proses klien saat ini.

pFreeProc

Penunjuk ke fungsi panggilan balik yang disediakan driver yang membebaskan sumber daya yang diacu oleh pvObj. Fungsi panggilan balik ini memiliki prototipe berikut:

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

Fungsi panggilan balik mengembalikan TRUE jika dapat membebaskan sumber daya, dan FALSE sebaliknya.

hdev

GDI menangani ke perangkat fisik yang terkait dengan objek .

dhpdev

Penunjuk ke data instans privat driver; yaitu, anggota ini mengidentifikasi PDEV driver.

Keterangan

Struktur DRIVEROBJ memungkinkan driver tampilan untuk meminta layanan GDI dalam mengelola sumber daya per proses. Dengan membuat struktur DRIVEROBJ, driver tampilan dapat memastikan bahwa sumber daya akan dirilis ketika aplikasi berakhir.

Beberapa driver, dalam dukungan Escape mereka, mengalokasikan sumber daya atas nama aplikasi. Dalam kasus seperti itu, struktur DRIVEROBJ menyediakan sarana bagi aplikasi untuk memberi tahu driver ketika penghentian. GDI akan memanggil fungsi pembersihan driver untuk setiap struktur DRIVEROBJ yang dialokasikan dalam konteks aplikasi yang tidak dihapus sebelum aplikasi berakhir.

Struktur ini menyediakan mekanisme penguncian untuk akses eksklusif ke sumber daya terkait.

Persyaratan

Persyaratan Nilai
Header winddi.h (termasuk Winddi.h)

Lihat juga

EngCreateDriverObj

EngDeleteDriverObj

EngLockDriverObj

EngUnlockDriverObj