Fungsi RtlStringCbCatNW (ntstrsafe.h)

Fungsi RtlStringCbCatNW dan RtlStringCbCatNA menggabungkan dua string yang dihitung byte sambil membatasi ukuran string yang ditambahkan.

Sintaks

NTSTRSAFEDDI RtlStringCbCatNW(
  [in, out] NTSTRSAFE_PWSTR pszDest,
  [in]      size_t          cbDest,
  [in]      STRSAFE_PCNZWCH pszSrc,
            size_t          cbToAppend
);

Parameter

[in, out] pszDest

Pointer ke buffer yang, pada input, berisi string null-terminated tempat pszSrc akan digabungkan. Pada output, ini adalah buffer tujuan yang berisi seluruh string yang dihasilkan. String di pszSrc, hingga byte cbMaxAppend , ditambahkan ke akhir string di pszDest dan dihentikan dengan karakter null.

[in] cbDest

Ukuran buffer tujuan, dalam byte. Buffer harus cukup besar untuk menyertakan string dan 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).

[in] pszSrc

Penunjuk ke string yang dihentikan null. String ini akan digabungkan ke akhir string yang terkandung dalam buffer di pszDest.

cbToAppend

Jumlah maksimum byte untuk ditambahkan ke string yang terkandung dalam buffer di pszDest.

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_SUCCESS
Status keberhasilan ini berarti data sumber ada, string digabungkan tanpa pemotokan, dan buffer tujuan yang dihasilkan dihentikan null.
STATUS_BUFFER_OVERFLOW
Status peringatan ini berarti operasi penggabungan tidak selesai karena ruang buffer yang tidak mencukuum. Buffer tujuan berisi versi hasil yang dihentikan dengan null dan dihentikan dari hasil yang dimaksud.
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 cbDest 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

RtlStringCbCatNW dan RtlStringCbCatNA harus digunakan alih-alih fungsi berikut:

  • strncat
  • wcsncat
Ukuran, dalam byte, buffer tujuan disediakan untuk RtlStringCbCatNW dan RtlStringCbCatNA untuk memastikan bahwa mereka tidak menulis melewati akhir buffer.

Gunakan RtlStringCbCatNW untuk menangani string Unicode dan RtlStringCbCatNA 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" RtlStringCbCatNW
char "string" RtlStringCbCatNA
 

Jika pszSrc dan pszDest menunjuk ke string yang tumpang tindih, perilaku fungsi tidak terdefinisi.

Baik pszSrc maupun pszDest tidak boleh NULL. Jika Anda perlu menangani nilai penunjuk string NULL , gunakan RtlStringCbCatNEx.

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 PASSIVE_LEVEL

Lihat juga

RtlStringCbCat

RtlStringCbCatNEx

RtlStringCchCatN