Funzione ObReferenceObjectByPointer (wdm.h)
La routine ObReferenceObjectByPointer incrementa il conteggio dei riferimenti del puntatore per un determinato oggetto.
Sintassi
NTSTATUS ObReferenceObjectByPointer(
[in] PVOID Object,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_TYPE ObjectType,
[in] KPROCESSOR_MODE AccessMode
);
Parametri
[in] Object
Puntatore al corpo dell'oggetto.
[in] DesiredAccess
Specifica una maschera che rappresenta l'accesso richiesto all'oggetto .
[in, optional] ObjectType
Puntatore al tipo di oggetto. ObjectType può essere *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType o *TmTransactionObjectType.
Questo parametro può anche essere NULL se AccessMode è KernelMode.
[in] AccessMode
Indica la modalità di accesso da utilizzare per il controllo di accesso. Deve essere UserMode o KernelMode. I driver di livello inferiore devono specificare KernelMode.
Valore restituito
ObReferenceObjectByPointer restituisce STATUS_SUCCESS quando la routine ha incrementato correttamente il numero di riferimenti del corpo dell'oggetto di destinazione. La routine esegue la convalida del tipo di oggetto se la chiamata viene eseguita in modalità utente e se il tipo richiesto dal chiamante non corrisponde a quello del corpo dell'oggetto, STATUS_OBJECT_TYPE_MISMATCH viene restituito. Lo stesso codice NTSTATUS viene restituito se il tipo richiesto è un tipo di collegamento simbolico (ObpSymbolicLinkObjectType) che non è consentito dalla routine, indipendentemente dal tipo di modalità di accesso.
Commenti
La chiamata a questa routine impedisce l'eliminazione dell'oggetto, possibilmente tramite la chiamata di un altro componente a ObDereferenceObject o ZwClose. Il chiamante deve decrementare il conteggio dei riferimenti con ObDereferenceObject non appena viene eseguito con l'oggetto .
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= DISPATCH_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDDIs(storport), TargetRelationNeedsRef(wdm) |