Функция CreatePrivateObjectSecurity (securitybaseapi.h)
Функция CreatePrivateObjectSecurity выделяет и инициализирует самостоятельный дескриптор безопасности для нового частного объекта. Защищенный сервер вызывает эту функцию при создании нового частного объекта.
Чтобы указать GUID типа объекта нового объекта или управлять наследованием записей управления доступом ,используйте функцию CreatePrivateObjectSecurityEx .
Синтаксис
BOOL CreatePrivateObjectSecurity(
[in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
[in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
[out] PSECURITY_DESCRIPTOR *NewDescriptor,
[in] BOOL IsDirectoryObject,
[in, optional] HANDLE Token,
[in] PGENERIC_MAPPING GenericMapping
);
Параметры
[in, optional] ParentDescriptor
Указатель на дескриптор безопасности для родительского каталога, в котором создается новый объект. Если родительского каталога нет, этот параметр может иметь значение NULL.
[in, optional] CreatorDescriptor
Указатель на дескриптор безопасности, предоставленный создателем объекта . Если создатель объекта не передает сведения о безопасности для нового объекта явным образом, этот параметр должен иметь значение NULL.
[out] NewDescriptor
Указатель на переменную, получающую указатель на только что выделенный самостоятельный дескриптор безопасности. Вызывающий объект должен вызвать функцию DestroyPrivateObjectSecurity , чтобы освободить этот дескриптор безопасности.
[in] IsDirectoryObject
Указывает, является ли новый объект контейнером. Значение TRUE указывает, что объект содержит другие объекты, например каталог.
[in, optional] Token
Дескриптор маркера доступа для клиентского процесса , от имени которого создается объект. Если это токен олицетворения, он должен быть на уровне SecurityIdentification или выше. Полное описание уровня олицетворения SecurityIdentification см . в SECURITY_IMPERSONATION_LEVEL перечисленного типа.
Маркер клиента используется для получения сведений о безопасности по умолчанию для нового объекта, таких как его владелец по умолчанию, основная группа и список управления доступом на уровне пользователей. Маркер должен быть открыт для TOKEN_QUERY доступа.
Если выполняются все указанные ниже условия, в дополнение к TOKEN_QUERY доступу необходимо открыть дескриптор для доступа TOKEN_DUPLICATE.
- Дескриптор маркера относится к основному маркеру.
- Дескриптор безопасности маркера содержит одно или несколько ACE с идентификатором безопасности OwnerRights .
- Дескриптор безопасности указывается для параметра CreatorDescriptor .
- Вызывающий объект этой функции не устанавливает флаг SEF_AVOID_OWNER_RESTRICTION в параметре AutoInheritFlags .
[in] GenericMapping
Указатель на структуру GENERIC_MAPPING , указывающую сопоставление каждого универсального права с определенными правами для объекта.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает ненулевое значение.
Если функция завершается сбоем, она возвращает ноль. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Если системный список управления доступом (SACL) указан в SECURITY_DESCRIPTOR , заданном параметром CreatorDescriptor , для параметра Token должна быть включена SE_SECURITY_NAME привилегия. Функция CreatePrivateObjectSecurity проверяет эту привилегию и может создавать аудиты во время процесса.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | securitybaseapi.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |
См. также раздел
Функции контроль доступа клиента и сервера