Fungsi RtlStringCbPrintfExW (ntstrsafe.h)
Fungsi RtlStringCbPrintfExW dan RtlStringCbPrintfExA membuat string teks yang dihitung byte, dengan pemformatan yang didasarkan pada informasi pemformatan yang disediakan.
Sintaks
NTSTRSAFEDDI RtlStringCbPrintfExW(
[out, optional] NTSTRSAFE_PWSTR pszDest,
[in] size_t cbDest,
[out, optional] NTSTRSAFE_PWSTR *ppszDestEnd,
[out, optional] size_t *pcbRemaining,
[in] DWORD dwFlags,
[in, optional] NTSTRSAFE_PCWSTR pszFormat,
...
);
Parameter
[out, optional] pszDest
Penunjuk ke buffer yang disediakan penelepon yang menerima string yang diformat dan dihentikan null. Fungsi ini membuat string ini dari string pemformatan yang disediakan oleh pszFormat dan daftar argumen fungsi. Pointer pszDest dapat berupa NULL, tetapi hanya jika STRSAFE_IGNORE_NULLS diatur dalam dwFlags.
[in] cbDest
Ukuran buffer tujuan, dalam byte. Buffer harus cukup besar untuk berisi string yang diformat ditambah karakter null yang mengakhiri.
Untuk string Unicode, jumlah maksimum byte adalah NTSTRSAFE_MAX_CCH * sizeof(WCHAR).
Untuk string ANSI, jumlah maksimum byte adalah NTSTRSAFE_MAX_CCH * sizeof(char).
Jika pszDestADALAH NULL, cbDest harus nol.
[out, optional] ppszDestEnd
Jika penelepon menyediakan penunjuk alamat non-NULL , setelah operasi selesai, fungsi memuat alamat tersebut dengan penunjuk ke terminator string null yang dihasilkan buffer tujuan.
[out, optional] pcbRemaining
Jika penelepon memasok penunjuk alamat non-NULL , fungsi memuat alamat dengan jumlah byte yang tidak digunakan yang ada di buffer yang diarahkan oleh pszDest, termasuk byte yang digunakan untuk karakter null yang mengakhiri.
[in] dwFlags
Satu atau beberapa bendera dan, secara opsional, byte isian. Bendera didefinisikan sebagai berikut:
[in, optional] pszFormat
Penunjuk ke string teks yang dihentikan null yang berisi direktif pemformatan bergaya printf. Penunjuk pszFormat bisa NULL, tetapi hanya jika STRSAFE_IGNORE_NULLS diatur dalam dwFlags.
...
Daftar argumen yang ditafsirkan oleh fungsi, berdasarkan arahan pemformatan yang terkandung dalam string pszFormat .
Nilai kembali
Fungsi mengembalikan salah satu nilai NTSTATUS yang tercantum dalam tabel berikut. Untuk informasi tentang cara menguji nilai NTSTATUS, lihat Menggunakan Nilai NTSTATUS.
Menampilkan kode | Deskripsi |
---|---|
|
Status keberhasilan ini berarti data sumber ada, string output dibuat tanpa pemotongan, dan buffer tujuan yang dihasilkan dihentikan null. |
|
Status peringatan ini berarti operasi tidak selesai karena ruang yang tidak cukup di buffer tujuan. Jika STRSAFE_NO_TRUNCATION diatur dalam dwFlags, buffer tujuan tidak dimodifikasi. Jika bendera tidak diatur, buffer tujuan berisi versi terpotong dari string yang dibuat. |
|
Status kesalahan ini berarti fungsi menerima parameter input yang tidak valid. Untuk informasi selengkapnya, lihat paragraf berikut ini.
Fungsi mengembalikan nilai STATUS_INVALID_PARAMETER saat:
|
Keterangan
RtlStringCbPrintfExW dan RtlStringCbPrintfExA harus digunakan alih-alih fungsi berikut:
- Sprintf
- swprintf
- _snprintf
- _snwprintf
RtlStringCbPrintfExW dan RtlStringCbPrintfExA menambahkan ke fungsionalitas RtlStringCbPrintf dengan mengembalikan penunjuk ke akhir string tujuan, serta jumlah byte yang dibiarkan tidak digunakan dalam string tersebut. Bendera dapat diteruskan ke fungsi untuk kontrol tambahan.
Gunakan RtlStringCbPrintfExW untuk menangani string Unicode dan RtlStringCbPrintfExA untuk menangani string ANSI. Formulir yang Anda gunakan bergantung pada data Anda, seperti yang diperlihatkan dalam tabel berikut ini.
Jenis data string | String harfiah | Fungsi |
---|---|---|
WCHAR | L"string" | RtlStringCbPrintfExW |
char | "string" | RtlStringCbPrintfExA |
Jika pszDest dan pszFormat menunjuk ke string yang tumpang tindih atau jika ada string argumen yang tumpang tindih, perilaku fungsi tidak terdefinisi.
Baik pszFormat maupun pszDest tidak dapat berupa NULL kecuali bendera STRSAFE_IGNORE_NULLS diatur, dalam hal ini baik atau keduanya dapat berupa NULL. Jika pszDestADALAH NULL, pszFormat harus NULL atau mengarah ke string kosong.
Untuk informasi selengkapnya tentang fungsi string aman, lihat Menggunakan Fungsi String Aman.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows XP dengan Paket Layanan 1 (SP1). |
Target Platform | Desktop |
Header | ntstrsafe.h (termasuk Ntstrsafe.h) |
Pustaka | Ntstrsafe.lib |
IRQL | Bagaimanapun, jika string yang dimanipulasi selalu berada dalam memori, jika tidak, 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