Share via


RtlUnalignedStringCchLengthW 함수(ntstrsafe.h)

RtlUnalignedStringCchLengthW 함수는 유니코드 문자 문자열에 대한 정렬되지 않은 포인터를 허용하는 RtlStringCchLength 함수의 버전입니다.

구문

NTSTRSAFEDDI RtlUnalignedStringCchLengthW(
  [in]            STRSAFE_PCUNZWCH psz,
  [in]            size_t           cchMax,
  [out, optional] size_t           *pcchLength
);

매개 변수

[in] psz

길이 RtlUnalignedStringCchLengthW가 검사 null로 끝나는 문자열을 포함하는 버퍼에 대한 포인터를 제공합니다.

[in] cchMax

종료되는 NULL 문자를 포함하여 psz 가 가리키는 버퍼에서 허용되는 최대 문자 수를 제공합니다. 이 값은 NTSTRSAFE_MAX_CCH 초과할 수 없습니다.

[out, optional] pcchLength

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

반환 값

RtlUnalignedStringCchLengthW 는 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
성공 상태 psz 매개 변수가 NULL이 아니라는 문자열과 문자열의 길이(종료 NULL 문자 포함)가 cchMax 문자보다 작거나 같음을 의미합니다.
STATUS_INVALID_PARAMETER
오류 상태 psz의 값이 NULL이거나, cchMax가 NTSTRSAFE_MAX_CCH보다 크거나, pszcchMax보다 길다는 것을 의미합니다.
 

NTSTATUS 값을 테스트하는 방법에 대한 자세한 내용은 NTSTATUS 값 사용을 참조하세요.

설명

RtlUnalignedStringCchLengthW 함수는 Itanium 기반 및 x64 기반과 같은 프로세서 아키텍처에 사용할 수 있으며, 소프트웨어가 정렬되지 않은 데이터에 액세스하려고 할 때 맞춤 예외가 발생합니다. 이러한 프로세서에서는 RtlStringCchLength 대신 RtlUnalignedStringCchLengthW 를 사용하여 맞춤 예외 방지할 수 있습니다. (맞춤 예외를 발생시키지 않는 프로세서의 경우 RtlUnalignedStringCchLengthWRtlStringCchLength와 동일합니다.)

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

요구 사항

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

추가 정보

RtlStringCchLength