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