Функция 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 | Длина параметра имени |
STATUS_NO_MEMORY | Невозможно выделить достаточно памяти для временного внутреннего буфера, используемого этой функцией. |
STATUS_NONE_MAPPED | Не удалось найти параметр |
STATUS_PROCESS_IS_TERMINATING | Этот процесс завершился, поэтому невозможно установить подключение к локальному вызову процедур (LPC). |
Замечания
SecLookupAccountSid пытается найти имя указанного идентификатора безопасности, сначала проверив список известных идентификаторов БЕЗОПАСНОСТИ. Если указанный идентификатор безопасности не соответствует хорошо известному идентификатору безопасности, функция проверяет встроенные и административные учетные записи. Затем функция проверяет основной домен. Идентификаторы безопасности, не распознанные основным доменом, проверяются на доверенные домены, соответствующие префиксам безопасности.
Если функция не может найти имя учетной записи для идентификатора безопасности, secLookupAccountSid. Это может произойти, если время ожидания сети предотвращает поиск имени функции. Это также происходит для идентификаторов БЕЗОПАСНОСТИ, у которых нет соответствующего имени учетной записи, например идентификатор безопасности входа, который определяет сеанс входа.
Помимо поиска идентификаторов БЕЗОПАСНОСТИ для локальных учетных записей, учетных записей локального домена и явным образом доверенных учетных записей домена, SecLookupAccountSid могут искать идентификаторы SID для любой учетной записи в любом домене в лесу, включая идентификаторы SIDhistory, которые отображаются только в поле SIDhistory учетной записи в лесу. Поле SIDhistory хранит бывшие идентификаторы SID учетной записи, которая была перемещена из другого домена. Чтобы найти идентификатор безопасности, SecLookupAccountSid запрашивает глобальный каталог леса.
SecLookupAccountSid эквивалентен функции Win32 LookupAccountSid.
secLookupAccountSid экспортируется драйвером ksecd, который реализует эту функцию с помощью вспомогательных служб в режиме пользователя. Соответственно, использование этой функции в файловых системах должно соответствовать обычным правилам обмена данными со службами пользовательского режима. secLookupAccountSid нельзя использовать во время разбиения на страницах ввода-вывода файла.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP |
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntifs.h) |
библиотеки |
Ksecdd.lib |
IRQL | <= APC_LEVEL |