共用方式為


RtlMultiByteToUnicodeN 函式 (ntifs.h)

RtlMultiByteToUnicodeN 例程會使用目前的系統 ANSI 代碼頁 (ACP) ,將指定的來源字串轉譯為 Unicode 字符串。 來源字串不一定來自多位元組位元集。

語法

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 代碼頁的預先編譯 Unicode 字元。

雖然 BytesInUnicodeString 是選擇性的,而且可以是 NULL,但呼叫端應該為它提供記憶體,因為接收的長度可用來判斷轉換是否成功。

如果目前的系統代碼頁定義單一位元組位元集,則範圍中的所有ANSI字元0x00 0x7f只會在對應的Unicode字元串中以零延伸,以加速轉換作業。 這類代碼頁中的 ANSI 值0x5c會轉譯成反斜杠字元,即使目前的單一位元組代碼頁將此字元定義為[快取符號]。

除非 UnicodeStringMultiByteString 指標相等,否則 RtlMultiByteToUnicodeN 不會修改來源字串。 傳回的 Unicode 字串不是以 Null 結尾。

如同 RtlMultiByteToUnicodeSize,RtlMultiByteToUnicodeN 僅支援在系統開機時對應至目前系統 ANSI 代碼頁的預先編譯 Unicode 字元。

如需其他字串處理程式的資訊,請參閱 Run-Time Library (RTL) 例程

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe (核心模式) ;Ntdll.dll (使用者模式)
IRQL < DISPATCH_LEVEL

另請參閱

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN