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) |