共用方式為


(ntifs.h) RtlOemToUnicodeN 函式

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 字串的長度,以位元組為單位。

傳回值

如果 OemString 的完整字串已成功轉譯並在 UnicodeString 傳回,則 RtlOemToUnicodeN 會傳回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) 例程

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另請參閱

RtlOemStringToCountedUnicodeString

RtlOemStringToUnicodeString

RtlUnicodeToOemN