RtlStringCchLengthA 関数 (ntstrsafe.h)

RtlStringCchLengthW 関数と RtlStringCchLengthA 関数は、指定された文字列の長さを文字数で決定します。

構文

NTSTRSAFEDDI RtlStringCchLengthA(
  [in] STRSAFE_PCNZCH psz,
  [in] size_t         cchMax,
       size_t         *pcchLength
);

パラメーター

[in] psz

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

[in] cchMax

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

pcchLength

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

戻り値

関数は、次の表に示す NTSTATUS 値のいずれかを返します。 NTSTATUS 値をテストする方法については、「 NTSTATUS 値の使用」を参照してください。

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

注釈

Strlen の代わりに RtlStringCchLengthW と RtlStringCchLengthA を使用する必要があります。 文字列が特定の長さ (文字数) を超えないことを確認するために使用されます。 その条件が満たされた場合、 RtlStringCchLengthW と RtlStringCchLengthA は、終端の null 文字を含まない、文字列の現在の長さを文字数で返します。

RtlStringCchLengthW を使用して Unicode 文字列を処理し、RtlStringCchLengthA を使用して ANSI 文字列を処理します。 次の表に示すように、使用するフォームはデータによって異なります。

文字列データ型 文字列リテラル 機能
WCHAR L"string" RtlStringCchLengthW
char "string" RtlStringCchLengthA
 

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

要件

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

こちらもご覧ください

RtlStringCbLength