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 文字列でゼロ拡張され、変換操作が高速化されます。 このようなコード ページで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