LsaLookupSids 함수(ntsecapi.h)
[LsaLookupSids 는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다. 대신 LsaLookupSids2를 사용합니다.]
LsaLookupSids 함수는 SID(보안 식별자) 배열에 해당하는 이름을 조회합니다. LsaLookupSids가 SID에 해당하는 이름을 찾을 수 없는 경우 함수는 문자 형식으로 SID를 반환합니다.
구문
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 배열의 SID 수를 지정합니다. 이는 Names 배열에 반환된 항목의 수이기도 합니다 . 이 값은 20480보다 작거나 같아야 합니다.
[in] Sids
조회할 SID 포인터 배열에 대한 포인터입니다. SID는 잘 알려진 SID, 사용자, 그룹 또는 로컬 그룹 계정 SID 또는 도메인 SID일 수 있습니다.
[out] ReferencedDomains
LSA_REFERENCED_DOMAIN_LIST 구조체에 대한 포인터에 대한 포인터를 받습니다. 이 구조 체의 Domains 멤버는 SID가 발견된 각 도메인에 대한 항목을 포함하는 배열입니다. 각 도메인에 대한 항목에는 도메인의 SID 및 플랫 이름이 포함됩니다. Windows 도메인의 경우 플랫 이름은 NetBIOS 이름입니다. Windows가 아닌 도메인이 있는 링크의 경우 플랫 이름은 해당 도메인의 식별 이름이거나 NULL입니다.
정보가 더 이상 필요하지 않으면 반환된 포인터를 LsaFreeMemory에 전달합니다. STATUS_NONE_MAPPED 또는 STATUS_SOME_NOT_MAPPED 오류 코드 중 하나로 인해 함수가 실패하는 경우에도 이 메모리를 해제해야 합니다 .
[out] Names
LSA_TRANSLATED_NAME 구조체 배열에 대한 포인터를 받습니다. 이름 배열의 각 항목에는 Sids 배열의 해당 항목에 대한 이름 정보가 포함됩니다. 계정 SID의 경우 각 구조체의 Name 멤버에는 계정의 격리된 이름이 포함됩니다. 도메인 SID의 경우 Name 멤버가 잘못되었습니다.
Names 배열에 있는 각 항목의 DomainIndex 멤버는 ReferencedDomains 매개 변수에 반환된 Domains 배열에 있는 항목의 인덱스입니다. 인덱스는 SID가 발견된 도메인의 도메인 배열을 식별 합니다 .
정보가 더 이상 필요하지 않으면 반환된 포인터를 LsaFreeMemory에 전달합니다. STATUS_NONE_MAPPED 또는 STATUS_SOME_NOT_MAPPED 오류 코드 중 하나로 인해 함수가 실패하는 경우에도 이 메모리를 해제해야 합니다 .
반환 값
함수가 성공하면 반환 값은 다음 NTSTATUS 값 중 하나입니다.
반환 코드 | 설명 |
---|---|
|
일부 SID를 번역할 수 없습니다. 정보 수준 반환 값입니다. |
|
모든 SID가 발견되어 성공적으로 번역되었습니다. |
함수가 실패하면 반환 값은 다음 값 또는 LSA 정책 함수 반환 값 중 하나일 수 있는 NTSTATUS 코드입니다.
반환 코드 | 설명 |
---|---|
|
SID 중 어느 것도 번역되지 않았습니다. 오류 수준 반환 값입니다. |
|
Sids 배열 매개 변수가 너무 큽니다. |
LsaNtStatusToWinError 함수를 사용하여 NTSTATUS 코드를 Windows 오류 코드로 변환할 수 있습니다.
설명
계정 SID의 경우 Name 멤버에 반환된 문자열은 계정의 격리된 이름(예: user_name)입니다. 계정의 복합 이름(예: Acctg\user_name)이 필요한 경우 ReferencedDomains 버퍼에서 도메인 이름을 가져와 백슬래시 및 격리된 이름을 추가합니다.
LsaLookupSids 함수가 SID를 변환할 수 없는 경우 함수는 다음 알고리즘을 사용합니다.
- SID의 도메인이 알려진 경우 ReferencedDomains 버퍼에는 도메인에 대한 항목이 포함되고 Names 매개 변수에 반환된 문자열은 SID에서 계정의 RID(상대 식별자)의 유니코드 표현입니다.
- SID의 도메인을 알 수 없는 경우 Names 매개 변수에 반환된 문자열은 전체 SID의 유니코드 표현이며 ReferencedDomains 버퍼에 이 SID에 대한 도메인 레코드가 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ntsecapi.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |