Функция SecLookupAccountSid (ntifs.h)

SecLookupAccountSid принимает идентификатор безопасности (SID) в качестве входных данных. Он извлекает имя учетной записи для этого идентификатора безопасности и имя первого домена, в котором он найден.

Синтаксис

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountSid(
  [in]            PSID            Sid,
  [out]           PULONG          NameSize,
  [in, out]       PUNICODE_STRING NameBuffer,
  [out]           PULONG          DomainSize,
  [out, optional] PUNICODE_STRING DomainBuffer,
  [out]           PSID_NAME_USE   NameUse
);

Параметры

[in] Sid

Указатель на ИД безопасности для поиска.

[out] NameSize

Указатель на переменную, указывающую размер NameBuffer. При входе это значение указывает размер входного nameBuffer в байтах. Если функция завершается сбоем, так как буфер слишком мал, эта переменная получает требуемый размер буфера. При успешном выполнении эта переменная содержит размер возвращаемого объекта NameBuffer.

[in, out] NameBuffer

Указатель на буфер, получающий имя учетной записи, связанной с sid. Если этот параметр имеет значение NULL, NameSize будет равен нулю.

[out] DomainSize

Указатель на ULONG, указывающий размер параметра DomainBuffer . Если функция завершается сбоем, так как буфер слишком мал, эта переменная получает требуемый размер буфера. Если параметр DomainBuffer имеет значение NULL, этот параметр будет иметь нулевое значение.

[out, optional] DomainBuffer

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

[out] NameUse

Указатель на SID_NAME_USE перечислимый тип, получающий тип учетной записи.

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

SecLookupAccountSid возвращает STATUS_SUCCESS при успешном выполнении или один из следующих кодов ошибок при сбое.

Код возврата Описание
SEC_E_INTERNAL_ERROR Произошла внутренняя ошибка при попытке подключения к локальному центру системы (LSA) или сбою вызова локальной процедуры (LPC) к поставщику безопасности.
STATUS_ACCESS_DENIED Идентификатор процесса, связанный с текущим выполняемым потоком, не соответствует текущему идентификатору процесса.
STATUS_BUFFER_TOO_SMALL Размер буфера для параметра NameBuffer или ReferencedDomain был слишком мал.
STATUS_INVALID_PARAMETER Длина параметра Name превысила длину, разрешенную в сообщении в локальном системном органе (LSA).
STATUS_NO_MEMORY Невозможно выделить достаточный объем памяти для временного внутреннего буфера, используемого этой функцией.
STATUS_NONE_MAPPED Не удалось найти параметр Sid .
STATUS_PROCESS_IS_TERMINATING Этот процесс завершен, поэтому невозможно установить подключение к локальному вызову процедур (LPC).

Комментарии

SecLookupAccountSid пытается найти имя для указанного идентификатора безопасности, сначала проверив список известных идентификаторов безопасности. Если предоставленный идентификатор безопасности не соответствует хорошо известному идентификатору безопасности, функция проверяет встроенные и административно определенные локальные учетные записи. Затем функция проверяет основной домен. Идентификаторы безопасности, не распознанные основным доменом, проверяются на доверенные домены, соответствующие их префиксам sid.

Если функции не удается найти имя учетной записи для sid, SecLookupAccountSid завершается ошибкой . Это может произойти, если время ожидания сети не позволяет функции найти имя. Это также происходит для идентификаторов безопасности без соответствующего имени учетной записи, таких как идентификатор безопасности входа, идентифицирующий сеанс входа.

Помимо поиска идентификаторов безопасности для локальных учетных записей, учетных записей локального домена и явно доверенных учетных записей домена , SecLookupAccountSid может искать идентификаторы безопасности для любой учетной записи в любом домене в лесу, включая идентификаторы безопасности, которые отображаются только в поле SIDhistory учетной записи в лесу. В поле SIDhistory хранятся бывшие идентификаторы БЕЗОПАСНОСТИ учетной записи, которая была перемещена из другого домена. Чтобы найти идентификатор безопасности, SecLookupAccountSid запрашивает глобальный каталог леса.

SecLookupAccountSid эквивалентен функции Win32 LookupAccountSid .

SecLookupAccountSid экспортируется драйвером ksecdd, который реализует эту функцию с помощью вспомогательных служб пользовательского режима. Соответственно, использование этой функции в файловых системах должно соответствовать обычным правилам взаимодействия со службами пользовательского режима. SecLookupAccountSid нельзя использовать во время ввода-вывода файла подкачки.

Требования

Требование Значение
Минимальная версия клиента Windows XP
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека Ksecdd.lib
IRQL <= APC_LEVEL

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

SID

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid