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 값 중 하나를 반환합니다.
반환 코드 | 묘사 |
---|---|
|
이 성공 상태는 지정된 psz 매개 변수가 NULL 않은 문자열을 의미하며 문자열 길이(종료 NULL 문자 포함)가 cbMax 바이트보다 작거나 같음을 의미합니다. |
|
이 오류 상태는 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 |