SecLookupAccountName 함수(ntifs.h)

SecLookupAccountName 은 계정을 입력으로 수락하고 계정의 SID(보안 식별자)와 계정이 발견된 도메인의 이름을 검색합니다.

구문

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountName(
  [in]               PUNICODE_STRING Name,
  [in, out]          PULONG          SidSize,
  [out]              PSID            Sid,
  [out]              PSID_NAME_USE   NameUse,
  [out]              PULONG          DomainSize,
  [in_out, optional] PUNICODE_STRING ReferencedDomain
);

매개 변수

[in] Name

계정 이름을 지정하는 유니코드 문자열에 대한 포인터입니다. domain_name\user_name 형식의 정규화된 문자열을 사용하여 SecLookupAccountName 이 원하는 도메인에서 계정을 찾도록 합니다.

[in, out] SidSize

Sid 버퍼의 크기를 지정하는 변수에 대한 포인터입니다. 입력 시 이 값은 입력 Sid 버퍼의 크기(바이트)를 지정합니다. 버퍼가 너무 작거나 SidSize 가 0이면 함수가 실패하면 이 변수는 필요한 버퍼 크기를 받습니다. 성공하면 이 변수에는 반환된 Sid의 크기가 포함됩니다.

[out] Sid

Name 매개 변수가 가리키는 계정 이름에 해당하는 SID 구조를 수신하는 버퍼에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 SidSize 는 0이어야 합니다.

[out] NameUse

계정 유형을 수신하는 SID_NAME_USE 열거형 형식에 대한 포인터입니다.

[out] DomainSize

ReferencedDomain 매개 변수의 크기를 받는 ULONG에 대한 포인터입니다. 버퍼가 너무 작기 때문에 함수가 실패하면 이 변수는 필요한 버퍼 크기를 받습니다. Input ReferencedDomain 매개 변수가 NULL이면 이 매개 변수는 0을 받습니다.

[in_out, optional] ReferencedDomain

계정 이름이 있는 도메인 이름에 대한 버퍼에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 도메인에 가입되지 않은 컴퓨터의 경우 이 버퍼는 컴퓨터 이름을 받습니다.

반환 값

SecLookupAccountName은 성공 시 STATUS_SUCCESS 반환하거나 실패 시 다음 오류 코드 중 하나를 반환합니다.

반환 코드 설명
SEC_E_INTERNAL_ERROR LSA(로컬 시스템 기관) 또는 LPC(로컬 프로시저 호출)에 보안 공급자에 연결하는 동안 내부 오류가 발생했습니다.
STATUS_ACCESS_DENIED 현재 실행 중인 스레드와 연결된 프로세스 ID가 현재 프로세스 ID와 일치하지 않습니다.
STATUS_BUFFER_TOO_SMALL Sid 또는 ReferencedDomain 매개 변수의 버퍼 크기가 너무 작습니다.
STATUS_INVALID_PARAMETER Name 매개 변수의 길이가 로컬 시스템 기관에 대한 메시지에서 허용되는 길이를 초과했습니다.
STATUS_NONE_MAPPED Name 매개 변수를 찾을 수 없습니다.
STATUS_PROCESS_IS_TERMINATING 이 프로세스가 종료되었으므로 LPC(로컬 프로시저 호출) 연결을 설정할 수 없습니다.

설명

SecLookupAccountName 은 지정된 이름의 SID를 찾으려고 시도합니다. 함수는 기본 제공 및 관리적으로 정의된 로컬 계정을 확인합니다. 다음으로, 함수는 주 도메인을 확인합니다. 이름이 없으면 신뢰할 수 있는 도메인이 선택됩니다.

격리된 이름(예: user_name) 대신 정규화된 계정 이름(예: domain_name\user_name)을 사용합니다. 정규화된 이름은 모호하지 않으며 조회가 수행될 때 더 나은 성능을 제공합니다. 또한 이 함수는 정규화된 DNS 이름(예: example.example.com\user_name) 및 UPN(사용자 계정 이름)(예 someone@example.com: )을 지원합니다.

로컬 계정, 로컬 도메인 계정 및 명시적으로 신뢰할 수 있는 도메인 계정을 조회하는 것 외에도 SecLookupAccountName 은 포리스트의 모든 도메인에 있는 모든 계정의 이름을 조회할 수 있습니다.

SecLookupAccountName 은 Win32 LookupAccountName 함수와 동일합니다.

SecLookupAccountName 은 사용자 모드 도우미 서비스를 사용하여 이 함수를 구현하는 ksecdd 드라이버에서 내보냅니다. 따라서 파일 시스템 내에서 이 함수를 사용하려면 사용자 모드 서비스와의 통신에 대한 일반적인 규칙을 준수해야 합니다. 파일 I/O를 페이징하는 동안 SecLookupAccountName을 사용할 수 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 Ksecdd.lib
IRQL <= APC_LEVEL

추가 정보

SID

SID_NAME_USE

SecLookupAccountSid

SecLookupWellKnownSid