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


Функция LookupSecurityDescriptorPartsA (aclapi.h)

Функция LookupSecurityDescriptorParts извлекает сведения о безопасности из самостоятельного дескриптора безопасности.

Синтаксис

DWORD LookupSecurityDescriptorPartsA(
  [out, optional] PTRUSTEE_A           *ppOwner,
  [out, optional] PTRUSTEE_A           *ppGroup,
  [out, optional] PULONG               pcCountOfAccessEntries,
  [out, optional] PEXPLICIT_ACCESS_A   *ppListOfAccessEntries,
  [out, optional] PULONG               pcCountOfAuditEntries,
  [out, optional] PEXPLICIT_ACCESS_A   *ppListOfAuditEntries,
  [in]            PSECURITY_DESCRIPTOR pSD
);

Параметры

[out, optional] ppOwner

Указатель на переменную, получающую указатель на структуру TRUSTEE . Функция ищет имя, связанное с идентификатором безопасности владельца (SID) в дескрипторе безопасностиpSD, и возвращает указатель на имя в элементе ptstrName структуры TRUSTEE. Функция задает для члена TrusteeForm значение TRUSTEE_IS_NAME.

Этот параметр может иметь значение NULL , если вас не интересует имя владельца.

[out, optional] ppGroup

Указатель на переменную, получающую указатель на структуру TRUSTEE . Функция ищет имя, связанное с идентификатором безопасности основной группы дескриптора безопасности, и возвращает указатель на имя в элементе ptstrName структуры TRUSTEE . Функция задает для члена TrusteeForm значение TRUSTEE_IS_NAME.

Этот параметр может иметь значение NULL , если имя группы не требуется.

[out, optional] pcCountOfAccessEntries

Указатель на ULONG , получающий количество EXPLICIT_ACCESS структур, возвращенных в массиве pListOfAccessEntries . Этот параметр может иметь значение NULL , только если параметр pListOfAccessEntries также имеет значение NULL.

[out, optional] ppListOfAccessEntries

Указатель на переменную, получающую указатель на массив EXPLICIT_ACCESS структур, описывающих записи управления доступом (ACE) в списке управления доступом (DACL) дескриптора безопасности. Структура TRUSTEE в этих EXPLICIT_ACCESS структурах использует форму TRUSTEE_IS_NAME. Описание того, как массив структур EXPLICIT_ACCESS описывает ACE в списке управления доступом (ACL), см. в статье Функция GetExplicitEntriesFromAcl . Если этот параметр имеет значение NULL, параметр cCountOfAccessEntries также должен иметь значение NULL.

[out, optional] pcCountOfAuditEntries

Указатель на ULONG , получающий количество EXPLICIT_ACCESS структур, возвращенных в массиве pListOfAuditEntries . Этот параметр может иметь значение NULL , только если параметр pListOfAuditEntries также имеет значение NULL.

[out, optional] ppListOfAuditEntries

Указатель на переменную, получающую указатель на массив EXPLICIT_ACCESS структур, описывающих ACE в системном списке управления доступом (SACL) дескриптора безопасности. Структура ПОПЕЧИТЕЛЬ в этих EXPLICIT_ACCESS структурах использует форму TRUSTEE_IS_NAME. Если этот параметр имеет значение NULL, параметр cCountOfAuditEntries также должен иметь значение NULL.

[in] pSD

Указатель на существующий самостоятельный дескриптор безопасности , из которого функция извлекает сведения о безопасности.

Возвращаемое значение

Если функция завершается успешно, функция возвращает ERROR_SUCCESS.

Если функция завершается сбоем, она возвращает ненулевой код ошибки, определенный в WinError.h.

Комментарии

Функция LookupSecurityDescriptorParts извлекает имена владельца и основной группы дескриптора безопасности. Эта функция также возвращает описания ACE в DACL и записи audit-control в списке SACL дескриптора безопасности.

Параметры, отличные от pSD, могут иметь значение NULL , если вы не заинтересованы в информации. Если вам не нужны сведения о DACL, значения pListOfAccessEntries и cCountOfAuditEntries должны иметь значение NULL. Если вам не нужны сведения о saCL, значения pListOfAuditEntries и cCountOfAuditEntries должны иметь значение NULL. Аналогичным образом, если требуется информация о DACL или SACL, оба соответствующих параметра не должны иметь значение NULL.

Завершив использование любого из буферов, возвращаемых параметрами pOwner, pGroup, pListOfAccessEntries или pListOfAuditEntries , освободите их, вызвав функцию LocalFree .

Функция LookupSecurityDescriptorParts предназначена для доверенных серверов, которые реализуют или предоставляют безопасность для собственных объектов. Функция работает с самостоятельным дескрипторем безопасности, подходящим для сериализации в потоке и хранения на диске, как это может потребоваться для доверенного сервера.

Примечание

Заголовок aclapi.h определяет LookupSecurityDescriptorParts в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header aclapi.h
Библиотека Advapi32.lib
DLL Advapi32.dll

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

ACE

ACL

Функции контроль доступа клиента или сервера

Общие сведения о клиенте и сервере контроль доступа

EXPLICIT_ACCESS

GetExplicitEntriesFromAcl

LocalFree

SECURITY_DESCRIPTOR

SID

ПОПЕЧИТЕЛЯ