GetUserNameA 함수(winbase.h)
현재 스레드와 연결된 사용자의 이름을 검색합니다.
GetUserNameEx 함수를 사용하여 지정된 형식으로 사용자 이름을 검색합니다. 추가 정보는 IADsADSystemInfo 인터페이스에서 제공됩니다.
구문
BOOL GetUserNameA(
[out] LPSTR lpBuffer,
[in, out] LPDWORD pcbBuffer
);
매개 변수
[out] lpBuffer
사용자의 로그온 이름을 받을 버퍼에 대한 포인터입니다. 이 버퍼가 전체 사용자 이름을 포함할 만큼 크지 않으면 함수가 실패합니다. 버퍼 크기(UNLEN + 1) 문자는 종료 null 문자를 포함하여 최대 길이 사용자 이름을 포함합니다. UNLEN은 Lmcons.h에 정의되어 있습니다.
[in, out] pcbBuffer
입력 시 이 변수는 TCHAR에서 lpBuffer 버퍼의 크기를 지정합니다. 출력 시 변수는 종료 null 문자를 포함하여 버퍼에 복사된 TCHAR 수를 받습니다.
lpBuffer가 너무 작으면 함수가 실패하고 GetLastError가 ERROR_INSUFFICIENT_BUFFER 반환합니다. 이 매개 변수는 종료 null 문자를 포함하여 필요한 버퍼 크기를 받습니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값이고 lpnSize가 가리키는 변수에는 종료 null 문자를 포함하여 lpBuffer에서 지정한 버퍼에 복사된 TCHAR 수가 포함됩니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
현재 스레드가 다른 클라이언트를 가장하는 경우 GetUserName 함수는 스레드가 가장하는 클라이언트의 사용자 이름을 반환합니다.
"NETWORK SERVICE" 계정으로 실행되는 프로세스에서 GetUserName 을 호출하는 경우 lpBuffer 에서 반환되는 문자열은 Windows 버전에 따라 다를 수 있습니다. Windows XP에서 "NETWORK SERVICE" 문자열이 반환됩니다. Windows Vista에서 "<HOSTNAME>$" 문자열이 반환됩니다.
예제
예제는 시스템 정보 가져오기를 참조하세요.
참고
winbase.h 헤더는 GETUserName을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |