다음을 통해 공유


RtlUTF8ToUnicodeN 함수

UTF-8(8비트 유니코드 변환 형식) 코드 페이지를 사용하여 지정된 소스 문자열을 유니코드 문자열로 변환합니다.

구문

NTSTATUS WINAPI RtlUTF8ToUnicodeN(
  _Out_     PWSTR  UnicodeStringDestination,
  _In_      ULONG  UnicodeStringMaxByteCount,
  _Out_opt_ PULONG UnicodeStringActualByteCount,
  _In_      PCCH   UTF8StringSource,
  _In_      ULONG  UTF8StringByteCount
);

매개 변수

UnicodeStringDestination [out]

변환된 문자열을 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다.

UnicodeStringMaxByteCount [in]

UnicodeStringDestination에서 쓸 최대 바이트 수입니다. 이 값으로 인해 번역된 문자열이 잘리면 RtlUTF8ToUnicodeN에서 오류 상태 반환합니다.

UnicodeStringActualByteCount [out, optional]

변환된 문자열의 길이(바이트)를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 문자열이 잘린 경우 반환된 숫자는 실제 잘린 문자열 수를 계산합니다.

UTF8StringSource [in]

번역할 문자열에 대한 포인터입니다.

UTF8StringByteCount [in]

UTF8StringSource의 문자열 크기(바이트)입니다.

반환 값

RtlUTF8ToUnicodeN 은 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
문자열이 유니코드로 변환되었습니다.
STATUS_SOME_NOT_MAPPED
잘못된 입력 문자가 발견되어 대체되었습니다. 이 상태 성공 상태 간주됩니다.
STATUS_INVALID_PARAMETER
UnicodeStringDestinationUnicodeStringActualByteCount에 대한 두 포인터는 모두 NULL이었습니다.
STATUS_INVALID_PARAMETER_4
UTF8StringSourceNULL입니다.
STATUS_BUFFER_TOO_SMALL
UnicodeStringDestination 이 잘렸습니다.

 

설명

UnicodeStringActualByteCount는 선택 사항이며 NULL일 수 있지만 수신된 길이를 사용하여 변환이 성공했는지 여부를 확인할 수 있으므로 호출자는 스토리지를 제공해야 합니다.

출력이 잘리고 잘못된 입력 문자가 발견되면 함수는 STATUS_BUFFER_TOO_SMALL 오류를 반환합니다.

UnicodeStringDestinationNULL로 설정된 경우 함수는 UnicodeStringActualByteCount에서 잘림 없이 번역된 문자열을 호스트하는 데 필요한 바이트 수를 반환합니다.

UnicodeStringDestinationUTF8StringSource 포인터가 동일하지 않는 한 RtlUTF8ToUnicodeN은 원본 문자열을 수정하지 않습니다. 반환된 유니코드 문자열은 null로 종료되지 않습니다.

RtlUTF8ToUnicodeN의 호출자는 IRQL < DISPATCH_LEVEL 실행 중이어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 R2 [데스크톱 앱만 해당]
헤더
Wdm.h
DLL
Ntdll.dll

추가 정보

RtlUnicodeToUTF8N