Функция ObGetObjectSecurity (wdm.h)
Подпрограмма ObGetObjectSecurity получает дескриптор безопасности для заданного объекта.
Синтаксис
NTSTATUS ObGetObjectSecurity(
[in] PVOID Object,
[out] PSECURITY_DESCRIPTOR *SecurityDescriptor,
[out] PBOOLEAN MemoryAllocated
);
Параметры
[in] Object
Указатель на объект .
[out] SecurityDescriptor
Указатель на переменную, предоставленную вызывающим объектом, которую эта подпрограмма задает для адреса буфера, содержащего SECURITY_DESCRIPTOR для данного объекта. Если заданный объект не имеет дескриптора безопасности, эта переменная получает значение NULL при возврате из ObGetObjectSecurity.
[out] MemoryAllocated
Указатель на переменную, предоставленную вызывающим объектом, которую эта подпрограмма устанавливает в значение TRUE , если она выделила буфер для размещения дескриптора безопасности.
Возвращаемое значение
ObGetObjectSecurity возвращает STATUS_SUCCESS или состояние ошибки, например STATUS_INSUFFICIENT_RESOURCES, если ей не удалось выделить достаточно памяти для возврата запрошенных сведений.
Комментарии
Успешный вызов ObGetObjectSecurity либо возвращает самостоятельный дескриптор безопасности в буфере в *SecurityDescriptor , либо возвращает значение NULL в *SecurityDescriptor , если заданный объект не имеет дескриптора безопасности. Например, любой неименованный объект, например объект события, не имеет дескриптора безопасности.
Если ObGetObjectSecurity возвращает STATUS_SUCCESS, вызывающий объект должен сохранить значение , возвращенное в MemoryAllocated. Такой вызывающий объект в конечном итоге должен передать MemoryAllocated в ответном вызове ObReleaseObjectSecurity , тем самым восстанавливая счетчик ссылок дескриптора безопасности до его исходного значения и освобождая буфер, если таковой имеется, который был выделен ObGetObjectSecurity.
ObGetObjectSecurity следует вызывать только на уровне IRQL = PASSIVE_LEVEL с включенными APC, в противном случае могут возникнуть взаимоблокировки или сбои.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlApcLte(wdm) |