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

另請參閱

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize

RtlUpcaseUnicodeToMultiByteN