RtlStringCchLengthW 関数 (ntstrsafe.h)
RtlStringCchLengthW 関数と RtlStringCchLengthA 関数は、指定された文字列の長さを文字数で決定します。
構文
NTSTRSAFEDDI RtlStringCchLengthW(
[in] STRSAFE_PCNZWCH psz,
[in] size_t cchMax,
size_t *pcchLength
);
パラメーター
[in] psz
null で終わる文字列を含むバッファーへのポインター。その長さがチェックされます。
[in] cchMax
psz が指すバッファーで許容される最大文字数 (終端の null 文字を含む)。 この値は、NTSTRSAFE_MAX_CCHを超えることはできません。
pcchLength
呼び出し元が NULL 以外のアドレス ポインターを提供する場合、関数は、バッファーに含まれる文字列の長さ (文字数) でアドレスを読み込みます。 長さには、文字列の終端の null 文字は含まれません。
戻り値
関数は、次の表に示す NTSTATUS 値のいずれかを返します。 NTSTATUS 値をテストする方法については、「 NTSTATUS 値の使用」を参照してください。
リターン コード | 説明 |
---|---|
|
この成功状態は、 psz の文字列が NULL ではなく、文字列の長さ (終端の null 文字を含む) が cchMax 文字以下であることを意味します。 |
|
このエラー状態は、 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 |