Fungsi NdisCopyFromNetBufferToNetBuffer (ndis/nblapi.h)
Panggil fungsi NdisCopyFromNetBufferToNetBuffer untuk menyalin data dari struktur NET_BUFFER sumber ke struktur NET_BUFFER tujuan.
Sintaks
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisCopyFromNetBufferToNetBuffer(
[in] NET_BUFFER *Destination,
[in] ULONG DestinationOffset,
[in] ULONG BytesToCopy,
[in] NET_BUFFER const *Source,
[in] ULONG SourceOffset,
[out] ULONG *BytesCopied
);
Parameter
[in] Destination
Penunjuk ke struktur NET_BUFFER tujuan yang dialokasikan sebelumnya.
[in] DestinationOffset
Offset byte dalam struktur NET_BUFFER tujuan untuk mulai menulis data yang disalin. Untuk informasi selengkapnya tentang DestinationOffset, lihat bagian Keterangan berikut ini.
[in] BytesToCopy
Jumlah byte yang akan disalin.
[in] Source
Penunjuk ke struktur NET_BUFFER sumber yang dialokasikan sebelumnya.
[in] SourceOffset
Offset byte dalam struktur NET_BUFFER sumber untuk mulai menyalin data. Untuk informasi selengkapnya tentang SourceOffset, lihat bagian Keterangan berikut ini.
[out] BytesCopied
Penunjuk ke variabel yang disediakan pemanggil di mana fungsi ini mengembalikan jumlah byte yang benar-benar disalin. Angka ini bisa kurang dari nilai BytesToCopy jika sumber kehabisan data atau tujuan kehabisan ruang.
Nilai kembali
NdisCopyFromNetBufferToNetBuffer mengembalikan salah satu nilai status berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Operasi salin berhasil diselesaikan. |
|
Operasi penyalinan gagal karena sumber daya yang tidak mencukupi. |
Keterangan
Pemanggil NdisCopyFromNetBufferToNetBuffer mengalokasikan struktur NET_BUFFER tujuan dan mungkin struktur NET_BUFFER sumber juga. MDL dari struktur NET_BUFFER tujuan harus memiliki cukup ruang untuk menerima data.
Jika struktur NET_BUFFER sumber kehabisan data atau struktur NET_BUFFER tujuan kehabisan ruang sebelum jumlah byte yang ditentukan telah disalin, operasi salin berhenti. Dalam kedua kasus, NdisCopyFromNetBufferToNetBuffer mengembalikan jumlah byte yang berhasil disalin dari sumber ke struktur NET_BUFFER tujuan.
Pemanggil harus memastikan bahwa nilai CurrentMdlOffset dan CurrentMdl sudah benar dalam struktur NET_BUFFER sumber dan tujuan. NDIS tidak mengubah anggota di NET_BUFFER tujuan. Pemanggil harus memperbarui nilai DataLength, DataOffset, dan CurrentMdlOffset di NET_BUFFER tujuan setelah NdisCopyFromNetBufferToNetBuffer kembali.
NDIS menggunakan offset dalam parameter DestionationOffset dan SourceOffsetdari NdisCopyFromNetBufferToNetBuffer sebagai offset dari offset data saat ini. Misalnya, jika nilai CurrentMdlOffset di NET_BUFFER tujuan adalah x, dan nilai DestinationOffset adalah y, NDIS menyalin data ke tujuan NET_BUFFER pada offset x+ y dalam memori yang dijelaskan nilai CurrentMdl . Aturan serupa berlaku untuk CurrentMdlOffset di NET_BUFFER sumber dan nilai SourceOffset .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.0 dan yang lebih baru. |
Target Platform | Universal |
Header | ndis/nblapi.h (sertakan ndis.h) |
Pustaka | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | Irql_NetBuffer_Function(ndis) |
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