Функция 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 |