Bagikan melalui


Menggunakan Objek Kerangka Kerja Umum

Objek kerangka kerja umum adalah objek kerangka kerja tempat semua jenis objek kerangka kerja lainnya berasal.

Seperti objek kerangka kerja lainnya, objek umum mendukung jumlah referensi, ruang konteks, fungsi panggilan balik penghapusan, dan objek induk, seperti yang dijelaskan dalam Pengenalan Objek Kerangka Kerja.

Para pengemudi dapat membuat dan menggunakan objek kerangka kerja umum. Jika driver Anda memanggil WdfObjectCreate untuk membuat objek umum, driver dapat:

  • Buat satu atau beberapa ruang konteks untuk setiap objek umum.

    Anda dapat menggunakan ruang konteks objek untuk menyimpan informasi tentang sumber daya sistem yang ingin Anda kaitkan dengan objek umum.

    Untuk informasi selengkapnya tentang ruang konteks, lihat Ruang Konteks Objek Kerangka Kerja.

  • Tetapkan induk untuk objek umum.

    Objek umum akan dihapus ketika objek induk dihapus. Misalnya, jika driver Anda menentukan objek perangkat kerangka kerja sebagai objek induk dari salah satu objek umumnya, kerangka kerja akan menghapus objek umum saat menghapus objek perangkat.

    Driver menentukan objek induk untuk objek dengan mengatur anggota ParentObject pada struktur WDF_OBJECT_ATTRIBUTES objek.

  • Berikan fungsi panggilan balik penghapusan.

    Driver dapat menyediakan fungsi EvtCleanupCallback dan fungsi EvtDestroyCallback, yang dapat membebaskan sumber daya sistem yang dialokasikan driver ketika telah membuat objek umum. Misalnya, jika driver memanggil ExAllocatePool ketika membuat objek umum, fungsi callback pembersihan atau penghancuran dapat memanggil ExFreePool.

Menggunakan objek umum dapat menjadi cara mudah untuk mengelola sumber daya yang dialokasikan driver. Misalnya, driver tingkat yang lebih tinggi mungkin memerlukan beberapa alokasi memori untuk memproses permintaan I/O yang diterima, jika driver mengirim permintaan ke beberapa perangkat atau memecah permintaan menjadi beberapa yang lebih kecil. Driver dapat membuat satu atau beberapa objek umum yang merupakan anak dari permintaan I/O yang diterima, dan dapat menyimpan informasi tentang alokasi memori di ruang konteks objek umum.