次の方法で共有


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 ソース文字列へのポインター。 現在のコード ページで 1 バイト文字セットが記述されている場合、このポインターは UnicodeString と同じアドレスにすることができます。

[in] BytesInOemString

OemString の文字列の長さ (バイト単位)。

戻り値

RtlOemToUnicodeN はOemString の完全な文字列が正常に変換され、 UnicodeString で返された場合にSTATUS_SUCCESSを返します。 それ以外の場合は、指定した MaxBytesInUnicodeString に合わせてコピー先の文字列を切り捨てる必要がある場合は、STATUS_BUFFER_OVERFLOWを返すことができます。 STATUS_BUFFER_OVERFLOWは警告 NTSTATUS 値です。

注釈

RtlOemToUnicodeN では、システム起動時にインストールされている現在のシステム OEM コード ページにマップされる、事前計算済みの Unicode 文字のみがサポートされます。

現在のシステム コード ページで 1 バイト文字セットが定義されている場合、0x7fに0x00範囲内のすべての 1 バイト文字は、変換操作を高速化するために、対応する Unicode 文字列で 0 だけ拡張されます。 このようなコード ページで0x5c文字値は、現在のコード ページで円記号としてこの文字が定義されている場合でも、円記号に変換されます。

戻り値STATUS_SUCCESSの 場合、BytesInUnicodeString の値 (存在する場合) は、指定された MaxBytesInUnicodeString ではなく、返される Unicode 文字列の長さを示します。

UnicodeString ポインターと OemString ポインターが同等でない限り、このルーチンはソース文字列を変更しません。 返される Unicode 文字列は、切り捨てられない場合は null で終了します。

その他の文字列処理ルーチンの詳細については、「 ランタイム ライブラリ (RTL) ルーチン」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL < DISPATCH_LEVEL

こちらもご覧ください

RtlOemStringToCountedUnicodeString

RtlOemStringToUnicodeString

RtlUnicodeToOemN