RtlUnicodeToMultiByteN 函式 (ntifs.h)
RtlUnicodeToMultiByteN 例程會使用目前的系統 ANSI 代碼頁,將指定的 Unicode 字串轉譯成新的字元字串, (ACP) 。 翻譯的字串不一定來自多位元組位元集。
語法
NTSYSAPI NTSTATUS RtlUnicodeToMultiByteN(
[out] PCHAR MultiByteString,
[in] ULONG MaxBytesInMultiByteString,
[out, optional] PULONG BytesInMultiByteString,
[in] PCWCH UnicodeString,
[in] ULONG BytesInUnicodeString
);
參數
[out] MultiByteString
呼叫端配置的緩衝區指標,以接收轉譯的字串。 MultiByteString 緩衝區不得與 UnicodeString 緩衝區重疊。
[in] MaxBytesInMultiByteString
要寫入 MultiByteString 的最大位元元組數目。 如果此值導致截斷轉譯的字串, RtlUnicodeToMultiByteN 不會傳回錯誤狀態。
[out, optional] BytesInMultiByteString
呼叫端配置的變數指標,該變數會接收翻譯字串的長度,以位元組為單位。 此參數是選擇性的,可以是 NULL。
[in] UnicodeString
要翻譯之 Unicode 來源字串的指標。
[in] BytesInUnicodeString
在 UnicodeString 的字串大小,以位元組為單位。
傳回值
RtlUnicodeToMultiByteN 會傳回STATUS_SUCCESS。
備註
RtlUnicodeToMultiByteN 會使用在系統開機時安裝的目前系統 ANSI 代碼頁來轉譯指定的 Unicode 字串。
雖然 BytesInMultiByteString 是選擇性的,而且可以是 NULL,但呼叫端應該提供記憶體,因為接收的長度可用來判斷轉換是否成功。
這個例程不會修改來源字串。 如果指定的 BytesInUnicodeString 包含 NULL 終止符,而且指定的 MaxBytesInMultiByteString 未造成截斷,則會傳回 Null 終止的多位元組位元串。
如同 RtlUnicodeToMultiByteSize,RtlUnicodeToMultiByteN 僅支援對應至系統開機時所安裝之目前系統 ANSI 代碼頁的預先編譯 Unicode 字元。
如需其他字串處理例程的資訊,請參閱 Run-Time Library (RTL) 例程。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包括 Fltkernel.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |