次の方法で共有


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 で終了します。

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

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

関連項目

RtlOemStringToCountedUnicodeString

RtlOemStringToUnicodeString

RtlUnicodeToOemN