Makro ObReferenceObjectWithTag (wdm.h)

Rutinitas ObReferenceObjectWithTag menambah jumlah referensi objek yang ditentukan, dan menulis nilai tag empat byte ke objek untuk mendukung pelacakan referensi objek.

Sintaks

void ObReferenceObjectWithTag(
  [in]  Object,
  [in]  Tag
);

Parameter

[in] Object

Penunjuk ke objek . Pemanggil mendapatkan pointer ini baik ketika membuat objek, atau dari panggilan sebelumnya ke rutinitas ObReferenceObjectByHandleWithTag setelah membuka objek.

[in] Tag

Menentukan nilai tag kustom empat byte. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.

Nilai kembali

Tidak ada

Keterangan

ObReferenceObjectWithTag mengembalikan nilai yang dicadangkan untuk penggunaan sistem. Driver harus memperlakukan nilai ini sebagai VOID.

ObReferenceObjectWithTag hanya menaikkan jumlah referensi penunjuk untuk objek, tanpa melakukan pemeriksaan akses pada objek yang ditentukan. Sebaliknya, rutinitas ObReferenceObjectByHandleWithTag dan ObReferenceObjectByPointerWithTag memverifikasi bahwa pemanggil memiliki hak akses yang diperlukan ke objek dan gagal jika pemanggil tidak memiliki hak ini.

Panggilan ObReferenceObjectWithTag mencegah penghapusan objek yang ditentukan setidaknya hingga driver memanggil rutinitas ObDereferenceObjectWithTag , atau menutup objek. Setelah objek tidak lagi diperlukan, driver harus memanggil ObDereferenceObjectWithTag untuk menghapus referensinya ke objek.

Ketika jumlah referensi untuk objek mencapai nol, komponen mode kernel dapat menghapus objek. Namun, driver hanya dapat menghapus objek yang dibuatnya, dan driver tidak boleh mencoba menghapus objek apa pun yang tidak dibuatnya.

Untuk informasi selengkapnya tentang referensi objek, lihat Siklus Hidup Objek.

Rutinitas ObReferenceObject mirip dengan ObReferenceObjectWithTag, kecuali bahwa itu tidak memungkinkan pemanggil untuk menulis tag kustom ke objek. Di Windows 7 dan versi Windows yang lebih baru, ObReferenceObject selalu menulis nilai tag default ('tlfD') ke objek. Panggilan ke ObReferenceObject memiliki efek yang sama dengan panggilan ke ObReferenceObjectWithTag yang menentukan Tag = 'tlfD'.

Untuk melihat jejak referensi objek di alat penelusuran kesalahan Windows, gunakan ekstensi debugger ! obtrace kernel-mode. Di Windows 7, ekstensi !obtrace ditingkatkan untuk menampilkan tag referensi objek, jika pelacakan referensi objek diaktifkan. Secara default, pelacakan referensi objek dinonaktifkan. Gunakan Editor Bendera Global (Gflags) untuk mengaktifkan pelacakan referensi objek. Untuk informasi selengkapnya, lihat Pelacakan Referensi Objek dengan Tag.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows 7 dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport)

Lihat juga

ObDereferenceObjectWithTag

ObReferenceObject

ObReferenceObjectByHandleWithTag

ObReferenceObjectByPointerWithTag