RtlOemToUnicodeN 函式 (ntifs.h)

RtlOemToUnicodeN常式會使用目前的系統 OEM 字碼頁,將指定的來源字串轉譯為 Unicode 字串。

語法

NTSYSAPI NTSTATUS RtlOemToUnicodeN(
  [out]           PWCH   UnicodeString,
  [in]            ULONG  MaxBytesInUnicodeString,
  [out, optional] PULONG BytesInUnicodeString,
  [in]            PCCH   OemString,
  [in]            ULONG  BytesInOemString
);

參數

[out] UnicodeString

接收翻譯字串之呼叫端配置的緩衝區指標。

[in] MaxBytesInUnicodeString

要寫入 UnicodeString的位元組數目上限。 如果此值導致截斷轉譯的字串, RtlOemToUnicodeN 不會傳回錯誤狀態。

[out, optional] BytesInUnicodeString

呼叫端配置的變數指標,該變數會接收已轉譯字串的長度,以位元組為單位。 此參數可以是 Null

[in] OemString

要轉譯為 Unicode 之 OEM 來源字串的指標。 如果目前的字碼頁描述單一位元組字元集,此指標可以與 UnicodeString相同。

[in] BytesInOemString

在 OemString的字串長度,以位元組為單位。

傳回值

RtlOemToUnicodeN 如果 OemString 的完整字串已成功轉譯並在 UnicodeString傳回,則會傳回STATUS_SUCCESS。 否則,如果必須截斷目的地字串,以符合指定的 MaxBytesInUnicodeString,它可以傳回STATUS_BUFFER_OVERFLOW。 STATUS_BUFFER_OVERFLOW是警告 NTSTATUS 值。

備註

RtlOemToUnicodeN 僅支援預先編譯的 Unicode 字元,這些字元會對應至系統開機時安裝的目前系統 OEM 字碼頁。

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

針對傳回值STATUS_SUCCESS,如果有 的話,BytesInUnicodeString的值會指出傳回 Unicode 字串的長度,而不是指定的 MaxBytesInUnicodeString

除非 UnicodeStringOemString 指標相等,否則此常式不會修改來源字串。 如果未截斷傳回的 Unicode 字串,則會以 Null 終止。

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

必要條件

   
目標平臺 環球
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另請參閱

RtlOemStringToCountedUnicodeString

RtlOemStringToUnicodeString

RtlUnicodeToOemN