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 値を返します。
リターン コード | 説明 |
---|---|
|
この 成功 状態は、 psz パラメーターが NULL ではなく、文字列の長さ (終端の NULL 文字を含む) が cchMax 文字以下であることを意味します。 |
|
この エラー 状態は、 psz の値が NULL、 cchMax がNTSTRSAFE_MAX_CCHより大きい、 または psz が cchMax より長いことを意味します。 |
NTSTATUS 値をテストする方法については、「 NTSTATUS 値の使用」を参照してください。
注釈
RtlUnalignedStringCchLengthW 関数は、Itanium ベースや x64 ベースなどのプロセッサ アーキテクチャで使用でき、ソフトウェアが整列されていないデータにアクセスしようとするとアラインメント例外が発生します。 これらのプロセッサでは、配置例外を回避するために RtlStringCchLength ではなく RtlUnalignedStringCchLengthW を使用できます。 (配置例外が発生しないプロセッサの場合、 RtlUnalignedStringCchLengthW は RtlStringCchLength と同じです)。
安全な文字列関数の詳細については、「安全な文字列関数の 使用」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Service Pack 1 (SP1) 以降のバージョンの Windows XP で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | ntstrsafe.h (Ntstrsafe.h を含む) |
Library | Ntstrsafe.lib |
IRQL | 操作される文字列が常にメモリ内に存在する場合は 、それ以外の場合は PASSIVE_LEVEL |