Fungsi RtlStringCbCopyUnicodeString (ntstrsafe.h)

Fungsi RtlStringCbCopyUnicodeString menyalin konten struktur UNICODE_STRING ke tujuan tertentu.

Sintaks

NTSTRSAFEDDI RtlStringCbCopyUnicodeString(
  [out] NTSTRSAFE_PWSTR  pszDest,
  [in]  size_t           cbDest,
  [in]  PCUNICODE_STRING SourceString
);

Parameter

[out] pszDest

Penunjuk ke buffer yang menerima string yang disalin. String yang ditunjukkan oleh struktur UNICODE_STRING parameter SourceString disalin ke buffer di pszDest dan dihentikan dengan karakter null.

[in] cbDest

Ukuran, dalam byte, dari buffer tujuan yang dituju pszDest . Buffer harus cukup besar untuk memuat string dan karakter null yang mengakhiri. Jumlah maksimum byte dalam buffer 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 string adalah NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).

Menampilkan nilai

RtlStringCbCopyUnicodeString mengembalikan salah satu nilai NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Status keberhasilan ini berarti bahwa data sumber ada, string disalin tanpa pemotokan, dan buffer tujuan yang dihasilkan dihentikan null.
STATUS_BUFFER_OVERFLOW
Status peringatan ini berarti bahwa operasi penyalinan tidak selesai karena ruang buffer yang tidak mencukupi. Buffer tujuan berisi versi hasil yang dihentikan dengan null dan dihentikan dari hasil yang dimaksud.
STATUS_INVALID_PARAMETER
Status kesalahan ini berarti bahwa fungsi menerima parameter input yang tidak valid. Untuk informasi selengkapnya, lihat daftar berikut ini.
 

RtlStringCbCopyUnicodeString mengembalikan nilai STATUS_INVALID_PARAMETER ketika salah satu hal berikut ini terjadi:

  • Isi struktur UNICODE_STRING tidak valid.
  • Nilai dalam cbDest lebih besar dari ukuran buffer maksimum.
  • Buffer tujuan (yang menunjuk pszDest ) sudah penuh.
  • Penunjuk buffer adalah NULL.
  • Panjang buffer tujuan adalah nol, tetapi string sumber panjang bukan nol ada.
Untuk informasi tentang cara menguji nilai NTSTATUS, lihat Menggunakan Nilai NTSTATUS.

Keterangan

Fungsi RtlStringCbCopyUnicodeString menggunakan ukuran buffer tujuan (yang ditentukan parameter cbDest ) untuk memastikan bahwa operasi salin tidak menulis melewati akhir buffer.

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

Pointer SourceString dan pszDest tidak boleh NULL. Jika Anda perlu menangani nilai penunjuk NULL , gunakan fungsi RtlStringCbCopyUnicodeStringEx .

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

RtlStringCbCopyUnicodeStringEx

RtlStringCchCopyUnicodeString

UNICODE_STRING