Fungsi ObReferenceObjectByPointer (wdm.h)
Rutinitas ObReferenceObjectByPointer meningkatkan jumlah referensi penunjuk untuk objek tertentu.
Sintaks
NTSTATUS ObReferenceObjectByPointer(
[in] PVOID Object,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_TYPE ObjectType,
[in] KPROCESSOR_MODE AccessMode
);
Parameter
[in] Object
Arahkan ke isi objek.
[in] DesiredAccess
Menentukan masker yang mewakili akses yang diminta ke objek.
[in, optional] ObjectType
Penunjuk ke jenis objek. ObjectType dapat berupa *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType, atau *TmTransactionObjectType.
Parameter ini juga bisa NULL jika AccessMode adalah KernelMode.
[in] AccessMode
Menunjukkan mode akses yang akan digunakan untuk pemeriksaan akses. Ini harus Berupa UserMode atau KernelMode. Driver tingkat bawah harus menentukan KernelMode.
Nilai kembali
ObReferenceObjectByPointer mengembalikan STATUS_SUCCESS ketika rutinitas berhasil meningkatkan jumlah referensi isi objek target. Rutinitas melakukan validasi jenis objek jika panggilan sedang dilakukan dalam mode pengguna dan jika jenis yang diminta oleh pemanggil tidak cocok dengan yang dari isi objek, STATUS_OBJECT_TYPE_MISMATCH dikembalikan. Kode NTSTATUS yang sama dikembalikan jika jenis yang diminta adalah jenis tautan simbolis (ObpSymbolicLinkObjectType) yang tidak diizinkan oleh rutinitas, terlepas dari jenis mode aksesnya.
Keterangan
Memanggil rutinitas ini mencegah objek dihapus, mungkin oleh panggilan komponen lain ke ObDereferenceObject atau ZwClose. Pemanggil harus mengurangi jumlah referensi dengan ObDereferenceObject segera setelah dilakukan dengan objek .
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), TargetRelationNeedsRef(wdm) |