(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。
除非 UnicodeString 和 OemString 指標相等,否則此例程不會修改來源字串。 如果傳回的 Unicode 字串未截斷,則會以 Null 終止。
如需其他字串處理程式的資訊,請參閱 Run-Time Library (RTL) 例程。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |