Fungsi RtlUnicodeStringToInteger (wdm.h)

Rutinitas RtlUnicodeStringToInteger mengonversi representasi string Unicode dari angka ke nilai bilangan bulat yang setara.

Sintaks

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

Parameter

[in] String

Penunjuk ke struktur UNICODE_STRING yang berisi representasi angka untuk dikonversi ke nilai bilangan bulat yang setara.

[in, optional] Base

Nilai numerik yang menunjukkan basis (atau radix) dari angka yang diwakili string Unicode. Nilai parameter ini bersifat opsional dan dapat diatur ke nol.

Jika Base adalah nol, RtlUnicodeStringToInteger memeriksa awalan string Unicode untuk menentukan dasar angka:

  • Jika awalannya adalah "0x", RtlUnicodeStringToInteger menginterpretasikan angka dalam string sebagai bilangan bulat heksadesimal.

  • Jika awalannya adalah "0o", RtlUnicodeStringToInteger menginterpretasikan angka dalam string sebagai bilangan bulat oktal.

  • Jika awalannya adalah "0b", RtlUnicodeStringToInteger menginterpretasikan angka dalam string sebagai bilangan bulat biner.

Jika string Unicode tidak berisi salah satu awalan ini, RtlUnicodeStringToInteger memperlakukan string sebagai bilangan bulat base-10.

[out] Value

Penunjuk ke variabel ULONG tempat RtlUnicodeStringToInteger menulis nilai bilangan bulat yang dihasilkan dari konversi string Unicode.

Nilai kembali

Jika konversi berhasil, rutinitas RtlUnicodeStringToInteger mengembalikan STATUS_SUCCESS dan menetapkan *Nilai ke nilai bilangan bulat yang diwakili oleh angka dalam string Unicode. Jika string tidak kosong, tetapi tidak dimulai dengan representasi angka yang valid, rutinitas mengembalikan STATUS_SUCCESS dan mengatur *Nilai ke nol. Jika string kosong, rutinitas gagal dan mengembalikan STATUS_INVALID_PARAMETER.

Keterangan

Rutinitas ini melewati spasi kosong apa pun di awal string input untuk menemukan awal angka.

Jika karakter spasi bukan putih pertama dalam string adalah tanda hubung (-), nilai bilangan bulat yang ditulis ke *Nilai negatif; jika tidak, jika karakter pertama adalah "+" atau tidak ada karakter tanda, nilai bilangan bulat yang ditulis ke *Nilai positif.

Jika string tidak berisi angka yang valid, atau jika digit pertama dalam string didahului oleh karakter spasi non-putih selain '+' atau '-', rutin mengatur nilai output ke nol dan mengembalikan STATUS_SUCCESS.

Substring yang berisi satu atau beberapa digit yang valid dihentikan oleh karakter apa pun yang bukan digit yang valid. Misalnya, jika Base = 2, digit yang valid adalah '0' dan '1'. Jika Dasar = 8, digit yang valid adalah '0' hingga '7'. Jika Base = 10, digit yang valid adalah '0' hingga '9'. Jika Base = 16, digit yang valid adalah '0' hingga '9', 'a' ke 'f', dan 'A' hingga 'F'.

Tabel berikut berisi contoh nilai output yang dihasilkan dari berbagai kombinasi string input dan nilai parameter Dasar .

Input string Base Nilai output
"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

Rutinitas terkait, RtlIntegerToUnicodeString, mengonversi nilai bilangan bulat ke representasi string Unicode yang setara.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
Pustaka NtosKrnl.lib (mode kernel); Ntdll.lib (mode pengguna)
DLL NtosKrnl.exe (mode kernel); Ntdll.dll (mode pengguna)
IRQL PASSIVE_LEVEL

Lihat juga

RtlIntegerToUnicodeString

UNICODE_STRING