Функция LsaLookupSids (ntsecapi.h)
[LsaLookupSids доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте LsaLookupSids2.]
Функция LsaLookupSids ищет имена, соответствующие массиву идентификаторов безопасности (SID). Если LsaLookupSids не удается найти имя, соответствующее идентификатору безопасности, функция возвращает идентификатор безопасности в символьной форме.
Синтаксис
NTSTATUS LsaLookupSids(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Count,
[in] PSID *Sids,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_NAME *Names
);
Параметры
[in] PolicyHandle
Дескриптор объекта Policy . Этот дескриптор должен иметь право доступа POLICY_LOOKUP_NAMES. Дополнительные сведения см. в разделе Открытие дескриптора объекта политики.
[in] Count
Указывает количество идентификаторов безопасности в массиве Sids . Это также количество записей, возвращаемых в массиве Names . Это значение должно быть меньше или равно 20480.
[in] Sids
Указатель на массив указателей sid для поиска. Идентификаторы безопасности могут быть хорошо известными идентификаторами безопасности, идентификаторами безопасности пользователей, групп или локальных групп учетных записей или идентификаторами безопасности домена.
[out] ReferencedDomains
Получает указатель на указатель на структуру LSA_REFERENCED_DOMAIN_LIST . Элемент Domains этой структуры — это массив, содержащий запись для каждого домена, в котором был найден идентификатор безопасности. Запись для каждого домена содержит идентификатор безопасности и неструктурированное имя домена. Для доменов Windows неструктурированным именем является NetBIOS-имя. Для ссылок с доменами, отличными от Windows, неструктурированное имя — это идентифицируемое имя этого домена или значение NULL.
Если сведения больше не нужны, передайте возвращенный указатель в LsaFreeMemory. Эта память должна быть освобождена, даже если функция завершается сбоем с помощью любого из кодов ошибок STATUS_NONE_MAPPED или STATUS_SOME_NOT_MAPPED
[out] Names
Получает указатель на массив LSA_TRANSLATED_NAME структур. Каждая запись в массиве Names содержит сведения об имени соответствующей записи в массиве Sids . Для идентификаторов безопасности учетных записей элемент Name каждой структуры содержит изолированное имя учетной записи. Для идентификаторов безопасности домена элемент Name является недопустимым.
Элемент DomainIndex каждой записи в массиве Names — это индекс записи в массиве Domains, возвращенный в параметре ReferencedDomains . Индекс идентифицирует массив Domains для домена, в котором был найден идентификатор безопасности.
Если сведения больше не нужны, передайте возвращенный указатель в LsaFreeMemory. Эта память должна быть освобождена, даже если функция завершается сбоем с помощью любого из кодов ошибок STATUS_NONE_MAPPED или STATUS_SOME_NOT_MAPPED
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение будет одним из следующих значений NTSTATUS .
Код возврата | Описание |
---|---|
|
Некоторые идентификаторы безопасности не могут быть переведены. Это возвращаемое значение информационного уровня. |
|
Все идентификаторы безопасности были найдены и успешно переведены. |
Если функция завершается сбоем, возвращаемое значение представляет собой код NTSTATUS , который может быть одним из следующих значений или одним из возвращаемых значений функции политики LSA.
Код возврата | Описание |
---|---|
|
Ни один из идентификаторов безопасности не был переведен. Это возвращаемое значение уровня ошибки. |
|
Параметр массива Sids был слишком большим. |
Для преобразования кода NTSTATUS в код ошибки Windows можно использовать функцию LsaNtStatusToWinError.
Комментарии
Для идентификаторов безопасности учетных записей строка, возвращаемая в элементе Name , представляет собой изолированное имя учетной записи (например, user_name). Если требуется составное имя учетной записи (например, Acctg\user_name), получите доменное имя из буфера ReferencedDomains и добавьте обратную косую черту и изолированное имя.
Если функция LsaLookupSids не может преобразовать идентификатор безопасности, функция использует следующий алгоритм:
- Если домен идентификатора безопасности известен, буфер ReferencedDomains содержит запись для домена, а строка, возвращаемая в параметре Names , является представлением относительного идентификатора учетной записи (RID) в Юникоде из sid.
- Если домен идентификатора безопасности неизвестен, строка, возвращаемая в параметре Names , представляет собой представление всего идентификатора безопасности в Юникоде, и в буфере ReferencedDomains нет записи домена для этого идентификатора безопасности.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | ntsecapi.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |