RtlUnalignedStringCchLengthW 関数 (ntstrsafe.h)

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

構文

NTSTRSAFEDDI RtlUnalignedStringCchLengthW(
  [in]            STRSAFE_PCUNZWCH psz,
  [in]            size_t           cchMax,
  [out, optional] size_t           *pcchLength
);

パラメーター

[in] psz

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

[in] cchMax

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

[out, optional] pcchLength

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

戻り値

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

リターン コード 説明
STATUS_SUCCESS
この 成功 状態は、 psz パラメーターが NULL ではなく、文字列の長さ (終端の NULL 文字を含む) が cchMax 文字以下であることを意味します。
STATUS_INVALID_PARAMETER
この エラー 状態は、 psz の値が NULLcchMax がNTSTRSAFE_MAX_CCHより大きい、 または pszcchMax より長いことを意味します。
 

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

注釈

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

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

要件

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

こちらもご覧ください

RtlStringCchLength