RtlMultiByteToUnicodeN 함수(ntifs.h)

RtlMultiByteToUnicodeN 루틴은 현재 시스템 ANSI 코드 페이지(ACP)를 사용하여 지정된 소스 문자열을 유니코드 문자열로 변환합니다. 원본 문자열이 반드시 멀티바이트 문자 집합에서 온 것은 아닙니다.

구문

NTSYSAPI NTSTATUS RtlMultiByteToUnicodeN(
  [out]           PWCH       UnicodeString,
  [in]            ULONG      MaxBytesInUnicodeString,
  [out, optional] PULONG     BytesInUnicodeString,
  [in]            const CHAR *MultiByteString,
  [in]            ULONG      BytesInMultiByteString
);

매개 변수

[out] UnicodeString

변환된 문자열을 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. UnicodeString 버퍼는 MultiByteString 버퍼와 겹치지 않아야 합니다.

[in] MaxBytesInUnicodeString

UnicodeString에서 쓸 최대 바이트 수입니다. 이 값으로 인해 번역된 문자열이 잘리는 경우 RtlMultiByteToUnicodeN은 오류 상태 반환하지 않습니다.

[out, optional] BytesInUnicodeString

변환된 문자열의 길이(바이트)를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.

[in] MultiByteString

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

[in] BytesInMultiByteString

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

반환 값

RtlMultiByteToUnicodeN은 STATUS_SUCCESS 반환합니다.

설명

RtlMultiByteToUnicodeN 은 시스템 부팅 시 설치된 현재 시스템 ANSI 코드 페이지에 매핑되는 미리 컴파일된 유니코드 문자만 지원합니다.

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

현재 시스템 코드 페이지에서 단일 바이트 문자 집합을 정의하는 경우 0x7f 0x00 범위의 모든 ANSI 문자는 변환 작업의 속도를 높이기 위해 해당 유니코드 문자열에서 0으로 확장됩니다. 이러한 코드 페이지에서 0x5c ANSI 값은 현재 싱글바이트 코드 페이지에서 이 문자를 Yen 기호로 정의하더라도 백슬래시 문자로 변환됩니다.

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

RtlMultiByteToUnicodeSize와 마찬가지로 RtlMultiByteToUnicodeN은 시스템 부팅 시 설치된 현재 시스템 ANSI 코드 페이지에 매핑된 미리 컴파일된 유니코드 문자만 지원합니다.

다른 문자열 처리 루틴에 대한 자세한 내용은 RTL(런타임 라이브러리) 루틴을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe(커널 모드); Ntdll.dll(사용자 모드)
IRQL < DISPATCH_LEVEL

추가 정보

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN