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 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
이 성공 상태 psz 매개 변수가 NULL이 아니라는 문자열과 문자열의 길이(종료 NULL 문자 포함)가 cchMax 문자보다 작거나 같음을 의미합니다. |
|
이 오류 상태 psz의 값이 NULL이거나, cchMax가 NTSTRSAFE_MAX_CCH보다 크거나, psz가 cchMax보다 길다는 것을 의미합니다. |
NTSTATUS 값을 테스트하는 방법에 대한 자세한 내용은 NTSTATUS 값 사용을 참조하세요.
설명
RtlUnalignedStringCchLengthW 함수는 Itanium 기반 및 x64 기반과 같은 프로세서 아키텍처에 사용할 수 있으며, 소프트웨어가 정렬되지 않은 데이터에 액세스하려고 할 때 맞춤 예외가 발생합니다. 이러한 프로세서에서는 RtlStringCchLength 대신 RtlUnalignedStringCchLengthW 를 사용하여 맞춤 예외 를 방지할 수 있습니다. (맞춤 예외를 발생시키지 않는 프로세서의 경우 RtlUnalignedStringCchLengthW 는 RtlStringCchLength와 동일합니다.)
안전한 문자열 함수에 대한 자세한 내용은 Safe String Functions 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP에서 SP1(서비스 팩 1) 이상 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ntstrsafe.h(Ntstrsafe.h 포함) |
라이브러리 | Ntstrsafe.lib |
IRQL | 조작되는 문자열이 항상 메모리에 상주하는 경우 이고, 그렇지 않으면 PASSIVE_LEVEL |