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 の値が NULLcchMax がNTSTRSAFE_MAX_CCHより大きい、 または pszcchMax より長いことを意味します。

注釈

Strlen の代わりに RtlStringCchLengthWRtlStringCchLengthA を使用する必要があります。 文字列が特定の長さ (文字数) を超えないことを確認するために使用されます。 その条件が満たされた場合、 RtlStringCchLengthWRtlStringCchLengthA は、終端の 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