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


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

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

Синтаксис

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

Указатель на буфер, который получает структуру идентификатора безопасности, соответствующую имени учетной записи, указанной параметром имени . Если этот параметр 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 Не удалось найти параметр имени .
STATUS_PROCESS_IS_TERMINATING Этот процесс завершился, поэтому невозможно установить подключение к локальному вызову процедур (LPC).

Замечания

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

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки Ksecdd.lib
IRQL <= APC_LEVEL

См. также

sid

SID_NAME_USE

SecLookupAccountSid

SecLookupWellKnownSid