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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk