Fungsi RtlUTF8StringToUnicodeString (ntifs.h)
Rutinitas RtlUTF8StringToUnicodeString mengonversi string UTF-8 yang ditentukan menjadi string Unicode.
Sintaks
NTSYSAPI NTSTATUS RtlUTF8StringToUnicodeString(
PUNICODE_STRING DestinationString,
PUTF8_STRING SourceString,
BOOLEAN AllocateDestinationString
);
Parameter
DestinationString
Penunjuk ke buffer tempat string Unicode output yang dikonversi disimpan. Bidang DestinationString-MaximumLength> diatur hanya jika AllocateDestinationString ADALAH TRUE.
SourceString
Penunjuk ke string sumber UTF-8 untuk dikonversi ke Unicode.
AllocateDestinationString
Nilai boolean. Ketika diatur TRUE, RtlUTF8StringToUnicodeString mengalokasikan ruang buffer untuk string tujuan. Hanya penyimpanan untuk DestinationString-Buffer> yang dialokasikan oleh API ini. Jika RtlUTF8StringToUnicodeString melakukan alokasi buffer, maka pemanggil harus membatalkan alokasi buffer menggunakan RtlFreeUnicodeString.
Nilai kembali
Fungsi ini mengembalikan STATUS_SUCCESS ketika konversi berhasil. Kemungkinan kesalahan atau kode peringatan meliputi:
Kode | Deskripsi |
---|---|
STATUS_INVALID_PARAMETERX | Kesalahan: Salah satu nilai parameter tidak valid. |
STATUS_NO_MEMORY | Kesalahan: RtlUTF8StringToUnicodeString tidak dapat mengalokasikan ruang buffer. |
STATUS_BUFFER_OVERFLOW | Peringatan: String yang dikonversi di DestinationString-Buffer> dipotok karena ruang yang tidak mencukup di buffer tujuan. |
STATUS_SOME_NOT_MAPPED | Peringatan: Panggilan berhasil, tetapi satu atau beberapa karakter input tidak valid dan dikonversi oleh karakter pengganti Unicode, U+FFFD, sebelum dikonversi ke UTF-8. |
Keterangan
String output Unicode dihentikan null hanya jika string input UTF-8 dihentikan null.
RtlUTF8StringToUnicodeString mendukung pasangan pengganti Unicode. Namun, nilai kata depan pengganti yang tidak diikuti oleh nilai kata berikutnya, atau nilai kata berikutnya yang tidak didahului oleh nilai kata di depan, tidak dikenali sebagai karakter yang valid dan digantikan oleh karakter pengganti Unicode, U+FFFD.
RtlUTF8StringToUnicodeString terus mengonversi string input menjadi string output hingga mencapai akhir buffer sumber atau akhir buffer tujuan, mana pun yang terjadi terlebih dahulu. Rutinitas mengonversi karakter null apa pun dalam string input menjadi karakter null dalam string output. Jika string input berisi karakter null yang mengakhiri, tetapi karakter null tidak terletak di akhir buffer sumber, rutinitas terus melewati karakter null yang mengakhiri hingga mencapai akhir ruang buffer yang tersedia.
Rutinitas RtlUnicodeStringToUTF8String mengonversi string Unicode menjadi string UTF-8.
Anda dapat menggunakan rutinitas RtlUTF8StringToUnicodeString dan RtlUnicodeStringToUTF8String untuk melakukan konversi tanpa kehilangan string teks yang valid antara format UTF-8 dan Unicode. Namun, string yang memiliki nilai data arbitrer kemungkinan melanggar aturan Unicode untuk mengodekan pasangan pengganti, dan informasi apa pun yang terkandung dalam nilai yang tidak valid dalam string input hilang dan tidak dapat dipulihkan dari string output yang dihasilkan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10, version 2004 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h, Wdm.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
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