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)

Vedi anche

ObDereferenceObject

ObReferenceObject

ObReferenceObjectByHandle

ZwClose