RtlConvertSidToUnicodeString 함수(ntifs.h)

RtlConvertSidToUnicodeString 루틴은 SID(보안 식별자)의 인쇄 가능한 유니코드 문자열 표현을 생성합니다.

구문

NTSYSAPI NTSTATUS RtlConvertSidToUnicodeString(
  [in, out] PUNICODE_STRING UnicodeString,
  [in]      PSID            Sid,
  [in]      BOOLEAN         AllocateDestinationString
);

매개 변수

[in, out] UnicodeString

생성된 유니코드 문자열을 포함하는 UNICODE_STRING 구조체에 대한 포인터입니다. UnicodeString-MaximumLength> 멤버는 AllocateDestinationStringTRUE인 경우에만 설정됩니다.

[in] Sid

유니코드로 변환할 SID 구조체에 대한 포인터입니다(SID 구조는 영향을 받지 않음).

[in] AllocateDestinationString

이 루틴이 UnicodeString 버퍼를 할당할지 여부를 나타내는 부울 플래그입니다. TRUE이면 UnicodeString-Buffer> 멤버만 할당되고 나머지 UnicodeString 구조체는 호출자가 할당해야 합니다.

반환 값

RtlConvertSidToUnicodeString 루틴은 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_SUCCESS
변환에 성공했습니다.
STATUS_BUFFER_OVERFLOW
AllocateDestinationStringFALSE이고 호출자가 제공한 UnicodeString 버퍼가 너무 작아 변환된 유니코드 문자열을 보유할 수 없는 경우 반환됩니다.
STATUS_NO_MEMORY
AllocateDestinationStringTRUE이고 UnicodeString 버퍼를 할당할 메모리가 부족한 경우 반환됩니다.
STATUS_INVALID_SID
지정된 SID 구조가 구조적으로 유효하지 않습니다.

설명

생성된 유니코드 문자열은 두 가지 형식 중 하나를 사용합니다. SID의 IdentifierAuthority 멤버 값이 2^32보다 작거나 같으면 IdentifierAuthority 멤버가 10진수로 생성됩니다. 예를 들어 IdentifierAuthority가 281,736인 SID 는 다음을 생성합니다.

 S-1-281736-12-72-9-110

그렇지 않으면 IdentifierAuthority가 16진수로 생성됩니다. 예를 들어 IdentifierAuthority가 173,495,281,736인 SID 는 다음을 생성합니다.

 S-1-0x28651FE848-12-72-9-110

SID의 다른 모든 멤버는 10진수로 생성됩니다.

AllocateDestinationStringTRUE이면 RtlFreeUnicodeString을 사용하여 할당된 버퍼의 할당을 취소해야 합니다.

요구 사항

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

추가 정보

RtlFreeUnicodeString

SID

UNICODE_STRING