Fungsi RtlUnicodeStringCbCopyN (ntstrsafe.h)

Fungsi RtlUnicodeStringCbCopyN menyalin string dari satu struktur UNICODE_STRING ke struktur lainnya sambil membatasi ukuran string yang disalin.

Sintaks

NTSTRSAFEDDI RtlUnicodeStringCbCopyN(
  [out] PUNICODE_STRING  DestinationString,
  [in]  PCUNICODE_STRING SourceString,
  [in]  size_t           cbToCopy
);

Parameter

[out] DestinationString

Penunjuk ke struktur UNICODE_STRING yang menerima string yang disalin. String yang dituju oleh struktur UNICODE_STRING parameter SourceString disalin ke buffer tempat struktur UNICODE_STRING parameter DestinationString menunjuk. Jumlah maksimum byte dalam buffer string struktur DestinationString adalah NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).

[in] SourceString

Penunjuk ke struktur UNICODE_STRING yang berisi string yang akan disalin. Jumlah maksimum byte dalam buffer string struktur adalah NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).

[in] cbToCopy

Jumlah byte yang akan disalin dari sumber ke tujuan.

Menampilkan nilai

RtlUnicodeStringCbCopyN mengembalikan salah satu nilai NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Status keberhasilan ini berarti data sumber ada, string disalin tanpa pemotongan.
STATUS_BUFFER_OVERFLOW
Status peringatan ini berarti operasi penyalinan tidak selesai karena ruang buffer yang tidak mencukupi. Buffer tujuan berisi versi terpotong dari hasil yang dimaksudkan.
STATUS_INVALID_PARAMETER
Status kesalahan ini berarti fungsi menerima parameter input yang tidak valid. Untuk informasi selengkapnya, lihat paragraf berikut ini.
 

RtlUnicodeStringCbCopyN mengembalikan nilai STATUS_INVALID_PARAMETER saat salah satu hal berikut ini terjadi:

  • Isi struktur UNICODE_STRING tidak valid.
  • Buffer tujuan sudah penuh.
  • Penunjuk buffer adalah NULL.
  • Panjang buffer tujuan adalah nol, tetapi string sumber panjang bukan nol ada.
  • Nilai parameter cbToCopy lebih besar dari NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
Untuk informasi tentang cara menguji nilai NTSTATUS, lihat Menggunakan Nilai NTSTATUS.

Keterangan

Fungsi RtlUnicodeStringCbCopyN menggunakan ukuran buffer tujuan untuk memastikan bahwa operasi salin tidak menulis melewati akhir buffer. Fungsi tidak mengakhiri string yang dihasilkan dengan nilai karakter null (yaitu, dengan nol).

Jika string sumber dan tujuan tumpang tindih, perilaku fungsi tidak terdefinisi.

Penunjuk SourceString dan DestinationString tidak boleh NULL. Jika Anda perlu menangani nilai penunjuk NULL , gunakan fungsi RtlUnicodeStringCbCopyNEx .

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

RtlUnicodeStringCbCopyNEx

RtlUnicodeStringCchCopyN

UNICODE_STRING