다음을 통해 공유


RtlUnicodeToUTF8N 함수

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

구문

NTSTATUS WINAPI RtlUnicodeToUTF8N(
  _Out_     PCHAR  UTF8StringDestination,
  _In_      ULONG  UTF8StringMaxByteCount,
  _Out_opt_ PULONG UTF8StringActualByteCount,
  _In_      PCWSTR UnicodeStringSource,
  _In_      ULONG  UnicodeStringByteCount
);

매개 변수

UTF8StringDestination [out]

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

UTF8StringMaxByteCount [in]

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

UTF8StringActualByteCount [out, optional]

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

UnicodeStringSource [in]

번역할 유니코드 소스 문자열에 대한 포인터입니다.

*UnicodeStringByteCount * [in]

UnicodeStringSource 매개 변수가 가리키는 유니코드 소스 문자열의 바이트 수를 지정합니다.

반환 값

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

반환 코드 설명
STATUS_SUCCESS
유니코드 문자열이 UTF-8로 변환되었습니다.
STATUS_SOME_NOT_MAPPED
잘못된 입력 문자를 발견하여 바꿉니다. 이 상태 성공 상태 간주됩니다.
STATUS_INVALID_PARAMETER
UTF8StringDestinationUTF8StringActualByteCount에 대한 두 포인터는 모두 NULL이었습니다.
STATUS_INVALID_PARAMETER_4
UnicodeStringSourceNULL입니다.
STATUS_BUFFER_TOO_SMALL
UTF8StringDestination 이 잘렸습니다.

 

설명

UTF8StringActualByteCount는 선택 사항이며 NULL일 수 있지만 수신된 길이를 사용하여 변환이 성공했는지 여부를 확인할 수 있으므로 호출자는 스토리지를 제공해야 합니다. 이 루틴은 원본 문자열을 수정하지 않습니다. 지정된 UnicodeStringSource 에 NULL 종결자가 포함되어 있고 지정된 UTF8StringMaxByteCount 가 잘림을 일으키지 않은 경우 null로 종료된 UTF-8 문자열을 반환합니다.

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

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

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

요구 사항

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

추가 정보

RtlUTF8ToUnicodeN