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

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

Синтаксис

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountName(
  [in]               PUNICODE_STRING Name,
  [in, out]          PULONG          SidSize,
  [out]              PSID            Sid,
  [out]              PSID_NAME_USE   NameUse,
  [out]              PULONG          DomainSize,
  [in_out, optional] PUNICODE_STRING ReferencedDomain
);

Параметры

[in] Name

Указатель на строку Юникода, указывающую имя учетной записи. Используйте полную строку в формате domain_name\user_name, чтобы приложение SecLookupAccountName обнаружило учетную запись в нужном домене.

[in, out] SidSize

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

[out] Sid

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

[out] NameUse

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

[out] DomainSize

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

[in_out, optional] ReferencedDomain

Указатель на буфер для имени домена, в котором находится имя учетной записи. Этот параметр является необязательным и может иметь значение NULL. Для компьютеров, которые не присоединены к домену, этот буфер получает имя компьютера.

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

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

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

Комментарии

SecLookupAccountName пытается найти идентификатор безопасности для указанного имени. Функция проверяет встроенные и определяемые администратором локальные учетные записи. Затем функция проверяет основной домен. Если имя не найдено, проверяются доверенные домены.

Используйте полные имена учетных записей (например, domain_name\user_name) вместо изолированных имен (например, user_name). Полные имена являются однозначными и обеспечивают лучшую производительность при выполнении поиска. Эта функция также поддерживает полные DNS-имена (например, example.example.com\user_name) и имена субъектов-пользователей (UPN) (например, someone@example.com).

Помимо поиска локальных учетных записей, учетных записей локального домена и явно доверенных учетных записей домена , SecLookupAccountName может искать имя для любой учетной записи в любом домене в лесу.

SecLookupAccountName эквивалентно функции Win32 LookupAccountName .

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

Требования

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

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

SID

SID_NAME_USE

SecLookupAccountSid

SecLookupWellKnownSid