다음을 통해 공유


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 기호로 정의하더라도 백슬래시 문자로 변환됩니다.

RtlMultiByteToUnicodeNUnicodeStringMultiByteString 포인터가 동일하지 않으면 원본 문자열을 수정하지 않습니다. 반환된 유니코드 문자열이 null로 종료되지 않습니다.

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

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

요구 사항

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

참고 항목

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN