다음을 통해 공유


RtlUnalignedStringCbLengthW 함수(ntstrsafe.h)

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

통사론

NTSTRSAFEDDI RtlUnalignedStringCbLengthW(
  [in]            STRSAFE_PCUNZWCH psz,
  [in]            size_t           cbMax,
  [out, optional] size_t           *pcbLength
);

매개 변수

[in] psz

길이 RtlUnalignedStringCbLengthW 확인할 null로 끝나는 문자열이 포함된 버퍼에 대한 포인터를 제공합니다.

[in] cbMax

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

[out, optional] pcbLength

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

반환 값

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

반환 코드 묘사
STATUS_SUCCESS
성공 상태는 지정된 psz 매개 변수가 NULL 않은 문자열을 의미하며 문자열 길이(종료 NULL 문자 포함)가 cbMax 바이트보다 작거나 같음을 의미합니다.
STATUS_INVALID_PARAMETER
오류 상태는 psz 값이 NULL , cbMax NTSTRSAFE_MAX_CCH * sizeof(WCHAR) 또는 pszcbMax보다 깁니다.
 

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

발언

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

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

요구 사항

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

참고 항목

RtlStringCbLength