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會轉譯成反斜杠字元,即使目前的單一位元組代碼頁將此字元定義為[快取符號]。
除非 UnicodeString 和 MultiByteString 指標相等,否則 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 |