Поделиться через


Функция 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)

См. также раздел

ObReferenceObjectByHandle

ObReleaseObjectSecurity

SECURITY_DESCRIPTOR