Fungsi RtlStringCchVPrintfW (ntstrsafe.h)

Fungsi RtlStringCchVPrintfW dan RtlStringCchVPrintfA membuat string teks yang dihitung karakter, dengan pemformatan yang didasarkan pada informasi pemformatan yang disediakan.

Sintaks

NTSTRSAFEDDI RtlStringCchVPrintfW(
  [out] NTSTRSAFE_PWSTR  pszDest,
  [in]  size_t           cchDest,
  [in]  NTSTRSAFE_PCWSTR pszFormat,
  [in]  va_list          argList
);

Parameter

[out] 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 argumen yang disediakan oleh argList.

[in] cchDest

Ukuran buffer tujuan, dalam karakter. Buffer harus cukup besar untuk berisi string yang diformat ditambah karakter null yang mengakhiri. Jumlah maksimum karakter yang diizinkan adalah NTSTRSAFE_MAX_CCH.

[in] pszFormat

Penunjuk ke string teks null-terminated yang berisi direktif pemformatan bergaya printf.

[in] argList

Daftar argumen yang ditik va_list. Argumen yang terkandung dalam daftar argumen akan ditafsirkan dengan menggunakan string pemformatan yang disediakan oleh pszFormat.

Menampilkan nilai

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_SUCCESS
Status keberhasilan ini berarti data sumber ada, string output dibuat tanpa pemotokan, dan buffer tujuan yang dihasilkan dihentikan null.
STATUS_BUFFER_OVERFLOW
Status peringatan ini berarti operasi tidak selesai karena ruang yang tidak cukup di buffer tujuan. Buffer tujuan berisi versi string yang dibuat.
STATUS_INVALID_PARAMETER
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:

  • Nilai dalam cchDest lebih besar dari ukuran buffer maksimum.
  • Buffer tujuan sudah penuh.
  • Penunjuk NULL ada.
  • Panjang buffer tujuan adalah nol, tetapi string sumber panjang bukan nol ada.

Keterangan

RtlStringCchVPrintfW dan RtlStringCchVPrintfA harus digunakan alih-alih fungsi berikut:

  • vsprintf
  • vswprintf
  • _vsnprintf
  • _vsnwprintf
Semua fungsi ini menerima string format dan argumennya, yang disediakan sebagai daftar argumen yang va_list ketik, dan mengembalikan string yang diformat. RtlStringCchVPrintfW dan RtlStringCchVPrintfA menerima ukuran, dalam karakter, dari buffer tujuan untuk memastikan bahwa fungsi tidak menulis melewati akhir buffer.

Untuk informasi selengkapnya tentang daftar argumen va_list-typed, lihat dokumentasi Microsoft Windows SDK.

Gunakan RtlStringCchVPrintfW untuk menangani string Unicode dan RtlStringCchVPrintfA untuk menangani string ANSI. Formulir yang Anda gunakan bergantung pada data Anda, seperti yang diperlihatkan dalam tabel berikut ini.

Jenis data string String literal Fungsi
WCHAR L"string" RtlStringCchVPrintfW
char "string" RtlStringCchVPrintfA
 

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 boleh NULL. Jika Anda perlu menangani nilai penunjuk string NULL , gunakan RtlStringCchVPrintfEx.

Untuk informasi selengkapnya tentang fungsi string aman, lihat Menggunakan Fungsi String Aman.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows XP dengan Paket Layanan 1 (SP1) dan versi Windows yang lebih baru.
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

RtlStringCbVPrintf

RtlStringCchPrintf

RtlStringCchVPrintfEx