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
NDIS_STATUS_SUCCESS
Operasi salin berhasil diselesaikan.
NDIS_STATUS_RESOURCES
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

NET_BUFFER