Fungsi NdisCopyFromPacketToPacketSafe (ndis.h)

Catatan NDIS 5. x telah tidak digunakan lagi dan digantikan oleh NDIS 6. x. Untuk pengembangan driver NDIS baru, lihat Driver Jaringan Yang Dimulai dengan Windows Vista. Untuk informasi tentang port NDIS 5. x driver ke NDIS 6. x, lihat Memindahkan Driver NDIS 5.x ke NDIS 6.0.

NdisCopyFromPacketToPacket menyalin rentang data tertentu dari satu paket ke paket lainnya.

Sintaks

void NdisCopyFromPacketToPacketSafe(
  [in]  IN PNDIS_PACKET     Destination,
  [in]  IN UINT             DestinationOffset,
  [in]  IN UINT             BytesToCopy,
  [in]  IN PNDIS_PACKET     Source,
  [in]  IN UINT             SourceOffset,
  [out] OUT PUINT           BytesCopied,
        IN MM_PAGE_PRIORITY Priority
);

Parameter

[in] Destination

Arahkan ke deskriptor paket tujuan.

[in] DestinationOffset

Menentukan offset byte dalam paket tujuan untuk mulai menulis data yang disalin.

[in] BytesToCopy

Menentukan jumlah byte yang akan disalin.

[in] Source

Arahkan ke deskriptor paket sumber.

[in] SourceOffset

Menentukan offset byte dalam paket sumber untuk mulai menyalin data.

[out] BytesCopied

Penunjuk ke variabel yang disediakan pemanggil di mana fungsi ini mengembalikan jumlah byte yang benar-benar disalin. Jumlah ini bisa kurang dari nilai BytesToCopy jika paket sumber kehabisan data atau paket tujuan kehabisan ruang.

Priority

Nilai kembali

Tidak ada

Keterangan

Mengembalikan nilai: Tidak ada

Driver harus memanggil NdisCopyFromPacketToPacketSafe alih-alih NdisCopyFromPacketToPacket. Driver miniport NDIS 5.1 harus memanggil NdisCopyFromPacketToPacketSafe alih-alih NdisCopyFromPacketToPacket. Tidak seperti NdisCopyFromPacketToPacket, NdisCopyFromPacketToPacketSafe tidak menyebabkan pemeriksaan bug apakah sumber daya sistem rendah atau kelelahan.

Pemanggil NdisCopyFromPacketToPacket mengalokasikan paket tujuan, jika bukan paket sumber juga. Deskriptor paket paket tujuan harus memiliki deskriptor buffer berantai yang cukup untuk menerima data.

Jika paket sumber kehabisan data atau paket tujuan kehabisan ruang sebelum jumlah byte yang ditentukan telah disalin, operasi salin berhenti. Dalam kedua kasus, NdisCopyFromPacketToPacket mengembalikan jumlah byte yang berhasil disalin dari sumber ke paket tujuan.

NdisCopyFromPacketToPacket tidak menyalin informasi out-of-band apa pun yang terkait dengan Sumber yang diberikan ke Tujuan. Untuk menyalin informasi ini, driver dapat menggunakan pointer yang dikembalikan oleh NDIS_OOB_DATA_FROM_PACKET lalu memanggil NdisMoveMemory.

Driver harus melepaskan kunci putar apa pun yang dipegangnya sebelum memanggil NdisCopyFromPacketToPacket.

  • Platform target: Universal
  • Versi: Tidak didukung untuk driver NDIS 6.0 di Windows Vista. Gunakan NdisCopyFromNetBufferToNetBuffersebagai gantinya. Didukung untuk driver NDIS 5.1 di Windows Vista dan Windows XP, tetapi gunakan NdisCopyFromPacketToPacketSafe sebagai gantinya.

Persyaratan

Persyaratan Nilai
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Lihat juga