RtlStringCbLengthW 함수(ntstrsafe.h)

RtlStringCbLengthWRtlStringCbLengthA 함수는 제공된 문자열의 길이를 바이트 단위로 결정합니다.

구문

NTSTRSAFEDDI RtlStringCbLengthW(
  [in] STRSAFE_PCNZWCH psz,
  [in] size_t          cbMax,
       size_t          *pcbLength
);

매개 변수

[in] psz

null로 끝나는 문자열을 포함하는 버퍼에 대한 포인터로, 길이를 확인합니다.

[in] cbMax

종료 null 문자를 포함하여 psz가 가리키는 버퍼에서 허용되는 최대 바이트 수입니다.

유니코드 문자열의 경우 최대 바이트 수는 NTSTRSAFE_MAX_CCH * sizeof(WCHAR)입니다.

ANSI 문자열의 경우 최대 바이트 수는 NTSTRSAFE_MAX_CCH * sizeof(char)입니다.

pcbLength

호출자가 NULL 이 아닌 주소 포인터를 제공하는 경우 함수는 버퍼에 포함된 문자열의 길이(바이트)를 사용하여 주소를 로드합니다. 길이에는 문자열의 종료 null 문자가 포함되지 않습니다.

반환 값

함수는 다음 표에 나열된 NTSTATUS 값 중 하나를 반환합니다. NTSTATUS 값을 테스트하는 방법에 대한 자세한 내용은 NTSTATUS 값 사용을 참조하세요.

반환 코드 설명
STATUS_SUCCESS
성공 상태 psz의 문자열이 NULL이 아니고 문자열의 길이(종료 null 문자 포함)가 cbMax 문자보다 작거나 같음을 의미합니다.
STATUS_INVALID_PARAMETER
오류 상태 psz의 값이 NULL이거나, cbMax가 NTSTRSAFE_MAX_CCH * sizeof(TCHAR)보다 크거나, pszcbMax보다 길다는 것을 의미합니다.

설명

RtlStringCbLengthWRtlStringCbLengthAstrlen 대신 사용해야 합니다. 이러한 함수를 사용하여 문자열이 지정된 길이(바이트)보다 크지 않은지 확인합니다. 해당 조건이 충족되면 RtlStringCbLengthWRtlStringCbLengthA 는 종료 null 문자에 사용되는 바이트를 포함하지 않고 문자열의 현재 길이를 바이트 단위로 반환합니다.

RtlStringCbLengthW를 사용하여 유니코드 문자열을 처리하고 RtlStringCbLengthA를 사용하여 ANSI 문자열을 처리합니다. 사용하는 양식은 다음 표와 같이 데이터에 따라 달라집니다.

String 데이터 형식 문자열 리터럴 함수
WCHAR L"string" RtlStringCbLengthW
char "문자열" RtlStringCbLengthA
 

안전한 문자열 함수에 대한 자세한 내용은 안전한 문자열 함수 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP에서 SP1(서비스 팩 1) 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 ntstrsafe.h(Ntstrsafe.h 포함)
라이브러리 Ntstrsafe.lib
IRQL 조작되는 문자열이 항상 메모리에 상주하는 경우 이고, 그렇지 않으면 PASSIVE_LEVEL

추가 정보

RtlStringCchLength