다음을 통해 공유


RtlUnicodeStringToInteger 함수(wdm.h)

RtlUnicodeStringToInteger 루틴은 숫자의 유니코드 문자열 표현을 해당하는 정수 값으로 변환합니다.

구문

NTSYSAPI NTSTATUS RtlUnicodeStringToInteger(
  [in]           PCUNICODE_STRING String,
  [in, optional] ULONG            Base,
  [out]          PULONG           Value
);

매개 변수

[in] String

해당하는 정수 값으로 변환할 숫자 표현을 포함하는 UNICODE_STRING 구조체에 대한 포인터입니다.

[in, optional] Base

유니코드 문자열이 나타내는 숫자의 기준(또는 radix)을 나타내는 숫자 값입니다. 이 매개 변수 값은 선택 사항이며 0으로 설정할 수 있습니다.

Base가 0이면 RtlUnicodeStringToInteger는 유니코드 문자열의 접두사를 검사하여 숫자의 기반을 확인합니다.

  • 접두사 "0x"인 경우 RtlUnicodeStringToInteger 는 문자열의 숫자를 16진수 정수로 해석합니다.

  • 접두사 "0o"이면 RtlUnicodeStringToInteger 는 문자열의 숫자를 8진수 정수로 해석합니다.

  • 접두사 "0b"이면 RtlUnicodeStringToInteger 는 문자열의 숫자를 이진 정수로 해석합니다.

유니코드 문자열에 이러한 접두사를 포함하지 않으면 RtlUnicodeStringToInteger 는 문자열을 base-10 정수로 처리합니다.

[out] Value

RtlUnicodeStringToInteger가 유니코드 문자열 변환으로 인한 정수 값을 쓰는 ULONG 변수에 대한 포인터입니다.

반환 값

변환에 성공하면 RtlUnicodeStringToInteger 루틴은 STATUS_SUCCESS 반환하고 *Value 를 유니코드 문자열의 숫자로 표현되는 정수 값으로 설정합니다. 문자열이 비어 있지 않지만 유효한 숫자 표현으로 시작하지 않으면 루틴은 STATUS_SUCCESS 반환하고 *Value 를 0으로 설정합니다. 문자열이 비어 있으면 루틴이 실패하고 STATUS_INVALID_PARAMETER 반환합니다.

설명

이 루틴은 입력 문자열의 시작 부분에 있는 공백을 건너뛰어 숫자의 시작을 찾습니다.

문자열의 공백이 아닌 첫 번째 문자가 하이픈(-)인 경우 *Value 에 기록된 정수 값은 음수입니다. 그렇지 않으면 첫 번째 문자가 "+"이거나 부호 문자가 없는 경우 *Value 에 기록된 정수 값은 양수입니다.

문자열에 유효한 숫자가 없거나 문자열의 첫 번째 숫자가 '+' 또는 '-' 이외의 공백이 아닌 문자 앞에 오는 경우 루틴은 출력 값을 0으로 설정하고 STATUS_SUCCESS 반환합니다.

유효한 숫자가 하나 이상 포함된 부분 문자열은 유효한 숫자가 아닌 문자에 의해 종료됩니다. 예를 들어 Base = 2인 경우 유효한 숫자는 '0' 및 '1'입니다. Base = 8이면 유효한 숫자는 '0'에서 '7'입니다. Base = 10이면 유효한 숫자는 '0'에서 '9'입니다. Base = 16인 경우 유효한 숫자는 '0'에서 '9', 'a'에서 'f'로, 'A'에서 'F'로 지정됩니다.

다음 표에는 입력 문자열과 Base 매개 변수 값의 다양한 조합으로 인해 발생하는 출력 값의 예가 포함되어 있습니다.

입력 문자열 기준 출력 값
"123" 10 123
"-345" 10 -345
"xyz" 10 0
"+678abc" 10 678
"+678abc" 16 6785724
"007" 10 7
"789" 8 7
"FGH" 16 15
" " 10 0

관련 루틴인 RtlIntegerToUnicodeString은 정수 값을 해당하는 유니코드 문자열 표현으로 변환합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h 포함)
라이브러리 NtosKrnl.lib(커널 모드); Ntdll.lib(사용자 모드)
DLL NtosKrnl.exe(커널 모드); Ntdll.dll(사용자 모드)
IRQL PASSIVE_LEVEL

추가 정보

RtlIntegerToUnicodeString

UNICODE_STRING