Функция 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
Указатель на буфер, который получает структуру идентификатора безопасности, соответствующую имени учетной записи, указанной параметром имени
[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 |