RtlUnalignedStringCbLengthW 関数 (ntstrsafe.h)

RtlUnalignedStringCbLengthW 関数は、Unicode 文字の文字列への整列されていないポインターを受け取る RtlStringCbLength 関数のバージョンです。

構文

NTSTRSAFEDDI RtlUnalignedStringCbLengthW(
  [in]            STRSAFE_PCUNZWCH psz,
  [in]            size_t           cbMax,
  [out, optional] size_t           *pcbLength
);

パラメーター

[in] psz

長さ RtlUnalignedStringCbLengthW がチェックする null で終わる文字列を含むバッファーへのポインターを提供します。

[in] cbMax

psz が指すバッファー内で許容される最大バイト数 (終端の NULL 文字を含む) を指定します。 この値は、NTSTRSAFE_MAX_CCH * sizeof(WCHAR) を超えることはできません。

[out, optional] pcbLength

省略可能。 呼び出し元が NULL 以外のアドレス ポインターを提供する場合、 関数は psz が指すバッファーに含まれる文字列の長さ (バイト単位) でアドレスを読み込みます。 長さには、文字列の終端 NULL 文字は含まれません。

戻り値

RtlUnalignedStringCbLengthW は 、次の NTSTATUS 値のいずれかを返します。

リターン コード 説明
STATUS_SUCCESS
この 成功 状態は、指定された psz パラメーターが NULL ではなく、文字列の長さ (終端の NULL 文字を含む) が cbMax バイト以下であることを意味します。
STATUS_INVALID_PARAMETER
この エラー 状態は、 psz の値が NULL であり、 cbMax が NTSTRSAFE_MAX_CCH * sizeof(WCHAR) より大きいか、 pszcbMax より長くなることを意味します。
 

NTSTATUS 値をテストする方法については、「 NTSTATUS 値の使用」を参照してください。

注釈

RtlUnalignedStringCbLengthW 関数は、ソフトウェアがアラインされていないデータにアクセスしようとしたときにアラインメント例外を引き起こす、Itanium ベースや x64 ベースなどのプロセッサ アーキテクチャで使用できます。 これらのプロセッサでは、配置例外を回避するために、RtlStringCbLength 関数の代わりに RtlUnalignedStringCbLengthW を使用できます。 (配置例外が発生しないプロセッサの場合、 RtlUnalignedStringCbLengthWRtlStringCbLength と同じです)。

安全な文字列関数の詳細については、「安全な文字列関数の 使用」を参照してください。

要件

要件
サポートされている最小のクライアント Service Pack 1 (SP1) 以降のバージョンの Windows XP で使用できます。
対象プラットフォーム デスクトップ
Header ntstrsafe.h (Ntstrsafe.h を含む)
Library Ntstrsafe.lib
IRQL 操作されている文字列が常にメモリ内に存在する場合は 。それ以外の場合は PASSIVE_LEVEL

こちらもご覧ください

RtlStringCbLength