次の方法で共有


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 文字のみがサポートされます。

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

必要条件

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

関連項目

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize

RtlUpcaseUnicodeToMultiByteN