Freigeben über


ObGetObjectSecurity-Funktion (wdm.h)

Die ObGetObjectSecurity-Routine ruft den Sicherheitsdeskriptor für ein bestimmtes Objekt ab.

Syntax

NTSTATUS ObGetObjectSecurity(
  [in]  PVOID                Object,
  [out] PSECURITY_DESCRIPTOR *SecurityDescriptor,
  [out] PBOOLEAN             MemoryAllocated
);

Parameter

[in] Object

Zeiger auf das Objekt.

[out] SecurityDescriptor

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die diese Routine auf die Adresse eines Puffers festlegt, der die SECURITY_DESCRIPTOR für das angegebene Objekt enthält. Wenn das angegebene Objekt über keinen Sicherheitsdeskriptor verfügt, wird diese Variable bei der Rückgabe von ObGetObjectSecurity auf NULL festgelegt.

[out] MemoryAllocated

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die von dieser Routine auf TRUE festgelegt wird, wenn sie einen Puffer zugewiesen hat, der die Sicherheitsbeschreibung enthält.

Rückgabewert

ObGetObjectSecurity gibt entweder STATUS_SUCCESS oder einen Fehler status zurück, z. B. STATUS_INSUFFICIENT_RESOURCES, wenn nicht genügend Arbeitsspeicher für die Rückgabe der angeforderten Informationen zugewiesen werden konnte.

Hinweise

Ein erfolgreicher Aufruf von ObGetObjectSecurity gibt entweder einen selbstrelativen Sicherheitsdeskriptor im Puffer unter *SecurityDescriptor oder NULL bei *SecurityDescriptor zurück, wenn das angegebene Objekt über keinen Sicherheitsdeskriptor verfügt. Beispielsweise verfügt jedes unbenannte Objekt, z. B. ein Ereignisobjekt, über keinen Sicherheitsdeskriptor.

Wenn ObGetObjectSecurity STATUS_SUCCESS zurückgibt, muss der Aufrufer den unter MemoryAllocated zurückgegebenen Wert speichern. Ein solcher Aufrufer muss MemoryAllocated in einem wechselseitigen Aufruf an ObReleaseObjectSecurity schließlich übergeben, wodurch die Verweisanzahl für den Sicherheitsdeskriptor auf den ursprünglichen Wert wiederhergestellt und der Puffer, falls vorhanden, freigegeben wird, der von ObGetObjectSecurity zugewiesen wurde.

ObGetObjectSecurity sollte nur auf IRQL-Ebene = PASSIVE_LEVEL mit aktivierten APCs aufgerufen werden, andernfalls können Deadlocks oder Abstürze auftreten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlApcLte(wdm)

Weitere Informationen

ObReferenceObjectByHandle

ObReleaseObjectSecurity

SECURITY_DESCRIPTOR