RtlUnicodeToMultiByteN 関数 (ntifs.h)

RtlUnicodeToMultiByteN ルーチンは、現在のシステム ANSI コード ページ (ACP) を使用して、指定された Unicode 文字列を新しい文字列に変換します。 翻訳された文字列は、必ずしもマルチバイト文字セットからのものではありません。

構文

NTSYSAPI NTSTATUS RtlUnicodeToMultiByteN(
  [out]           PCHAR  MultiByteString,
  [in]            ULONG  MaxBytesInMultiByteString,
  [out, optional] PULONG BytesInMultiByteString,
  [in]            PCWCH  UnicodeString,
  [in]            ULONG  BytesInUnicodeString
);

パラメーター

[out] MultiByteString

変換された文字列を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 MultiByteString バッファーは UnicodeString バッファーと重複してはなりません。

[in] MaxBytesInMultiByteString

MultiByteString に書き込まれる最大バイト数。 この値によって変換された文字列が切り捨てられる場合、 RtlUnicodeToMultiByteN はエラー状態を返しません。

[out, optional] BytesInMultiByteString

変換された文字列の長さをバイト単位で受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。

[in] UnicodeString

変換する Unicode ソース文字列へのポインター。

[in] BytesInUnicodeString

UnicodeString の文字列のサイズ (バイト単位)。

戻り値

RtlUnicodeToMultiByteN は STATUS_SUCCESSを返します。

注釈

RtlUnicodeToMultiByteN は、システムの起動時にインストールされた現在のシステム ANSI コード ページを使用して、指定された Unicode 文字列を変換します。

BytesInMultiByteString は省略可能で NULL にできますが、呼び出し元は、変換が成功したかどうかを判断するために受信した長さを使用できるため、そのストレージを提供する必要があります。

このルーチンでは、ソース文字列は変更されません。 指定された BytesInUnicodeString に NULL ターミネータが含まれていて、指定された MaxBytesInMultiByteString で切り捨てが発生しなかった場合は、null で終わるマルチバイト文字列が返されます。

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

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

要件

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

こちらもご覧ください

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize

RtlUpcaseUnicodeToMultiByteN