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


Функция 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 Длина параметра имени превысила длину, разрешенную в сообщении локальному системном центру (LSA).
STATUS_NO_MEMORY Невозможно выделить достаточно памяти для временного внутреннего буфера, используемого этой функцией.
STATUS_NONE_MAPPED Не удалось найти параметр Sid.
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

См. также

sid

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid