GetUserObjectSecurity 함수(winuser.h)

GetUserObjectSecurity 함수는 지정된 사용자 개체에 대한 보안 정보를 검색합니다.

구문

BOOL GetUserObjectSecurity(
  [in]                HANDLE                hObj,
  [in]                PSECURITY_INFORMATION pSIRequested,
  [in, out, optional] PSECURITY_DESCRIPTOR  pSID,
  [in]                DWORD                 nLength,
  [out]               LPDWORD               lpnLengthNeeded
);

매개 변수

[in] hObj

보안 정보를 반환할 사용자 개체에 대한 핸들입니다.

[in] pSIRequested

요청되는 보안 정보를 지정하는 SECURITY_INFORMATION 값에 대한 포인터입니다.

[in, out, optional] pSID

함수가 반환할 때 요청된 정보를 포함하는 자체 상대 형식의 SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다. 이 버퍼는 4 바이트 경계에 맞춰야 합니다.

[in] nLength

pSD 매개 변수가 가리키는 버퍼의 길이(바이트)입니다.

[out] lpnLengthNeeded

전체 보안 설명자를 저장하는 데 필요한 바이트 수를 수신하는 변수에 대한 포인터입니다. 함수가 반환할 때 이 변수의 값이 nLength 매개 변수 값보다 크면 함수는 FALSE 를 반환하고 보안 설명자는 버퍼에 복사되지 않습니다. 그렇지 않으면 전체 보안 설명자가 복사됩니다.

반환 값

함수가 성공하면 함수는 0이 아닌 값을 반환합니다.

함수가 실패하면 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

사용자 개체의 보안 설명자에서 소유자, 그룹 또는 DACL( 임의 액세스 제어 목록 )을 읽으려면 핸들을 열 때 호출 프로세스 에 액세스 권한을 READ_CONTROL 부여되어야 합니다.

보안 설명자에서 SACL( 시스템 액세스 제어 목록 )을 읽으려면 핸들을 열 때 호출 프로세스에 액세스 권한을 ACCESS_SYSTEM_SECURITY 부여되어야 합니다. 이 액세스를 가져오는 올바른 방법은 호출자의 현재 토큰에서 SE_SECURITY_NAME 권한을 사용하도록 설정하고 ACCESS_SYSTEM_SECURITY 액세스에 대한 핸들을 연 다음 권한을 사용하지 않도록 설정하는 것입니다.

예제

이 함수를 사용하는 예제는 대화형 클라이언트 프로세스 시작을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

추가 정보

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

하위 수준 Access Control

하위 수준 Access Control 함수

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity