NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO fungsi panggilan balik (ndis.h)

Ekstensi sakelar yang dapat diperluas Hyper-V memanggil fungsi CopyNetBufferListInfo untuk menyalin konteks penerusan out-of-band (OOB) dari struktur NET_BUFFER_LIST paket sumber ke struktur NET_BUFFER_LIST paket tujuan. Konteks ini mencakup port sumber sakelar yang dapat diperluas dan informasi adaptor jaringan. Informasi port tujuan sakelar yang dapat diperluas juga dapat disalin.

Sintaks

NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;

NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST DestNetBufferList,
  [in]      PNET_BUFFER_LIST SrcNetBufferList,
  [in]      UINT32 Flags
)
{...}

Parameter

[in] NdisSwitchContext

Nilai NDIS_SWITCH_CONTEXT yang berisi handel modul sakelar yang dapat diperluas tempat ekstensi dilampirkan. Ketika ekstensi memanggil NdisFGetOptionalSwitchHandlers, handel ini dikembalikan melalui parameter NdisSwitchContext .

[in, out] DestNetBufferList

Penunjuk ke struktur NET_BUFFER_LIST untuk paket tujuan tempat konteks penerusan sakelar yang dapat diperluas disalin.

[in] SrcNetBufferList

Penunjuk ke struktur NET_BUFFER_LIST untuk paket sumber tempat konteks penerusan sakelar yang dapat diperluas disalin.

[in] Flags

Nilai UINT32. Ketika bendera NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS ditentukan, fungsi menyalin port tujuan sakelar yang dapat diperluas dari paket sumber ke paket tujuan.

Data yang terkandung dalam penyatuan NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO paket sumber selalu disalin ke konteks penerusan sakelar yang dapat diperluas dalam paket tujuan. Data ini mencakup pengidentifikasi port sumber dan indeks koneksi adaptor jaringan dari mana paket berasal. Tergantung pada jumlah port tujuan switch yang dapat diperluas yang disalin ke paket tujuan, anggota NumAvailableDestinations dari serikat NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO diperbarui dalam paket tujuan.

Untuk informasi selengkapnya tentang konteks penerusan, lihat Konteks Penerusan Sakelar Yang Dapat Diperluas Hyper-V.

Nilai kembali

Jika panggilan berhasil, fungsi akan mengembalikan NDIS_STATUS_SUCCESS. Jika tidak, kode kesalahan NDIS_STATUS_Xxx yang ditentukan dalam Ndis.h.

Keterangan

Ekstensi sakelar yang dapat diperluas memanggil fungsi CopyNetBufferListInfo untuk menyalin data OOB dari paket sumber ke paket tujuan. Data ini mencakup hal-hal berikut:

  • Data dari array NetBufferListInfo dari struktur NET_BUFFER_LIST paket sumber.
  • Data NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dari konteks penerusan sakelar yang dapat diperluas paket sumber.
  • Data untuk port tujuan sakelar yang dapat diperluas dari konteks penerusan sakelar yang dapat diperluas paket sumber.
    Catatan Data ini hanya disalin jika bendera NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS ditentukan.
     
Sebelum ekstensi memanggil CopyNetBufferListInfo, ekstensi harus menyiapkan struktur NET_BUFFER_LIST paket tujuan dengan mengikuti langkah-langkah berikut:
  1. Ekstensi harus terlebih dahulu menginisialisasi struktur NET_BUFFER_LIST untuk paket tujuan yang berasal dari struktur NET_BUFFER_LIST paket sumber.

    Misalnya, ekstensi dapat memanggil NdisAllocateCloneNetBufferList untuk membuat salinan lengkap paket sumber. Ekstensi ini juga dapat memanggil NdisAllocateFragmentNetBufferList untuk membuat salinan hanya fragmen paket sumber. Untuk informasi selengkapnya, lihat Struktur NET_BUFFER_LIST Turunan.

  2. Ekstensi harus memanggil fungsi AllocateNetBufferListForwardingContext untuk mengalokasikan konteks penerusan sakelar yang dapat diperluas untuk paket tujuan. Data ini digunakan untuk menyimpan informasi penerusan sakelar yang dapat diperluas OOB, seperti port sumber dan tujuan paket.
Catatan Jika ekstensi membuat atau mengkloning paket sumber, ekstensi harus sebelumnya disebut fungsi AllocateNetBufferListForwardingContext untuk paket. Paket sumber yang difilter ekstensi melalui tumpukan driver sakelar yang dapat diperluas sudah berisi konteks penerusan sakelar yang dapat diperluas yang dialokasikan.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.30 dan yang lebih baru.
Target Platform Desktop
Header ndis.h (termasuk Ndis.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

AllocateNetBufferListForwardingContext

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisAllocateFragmentNetBufferList

NdisFGetOptionalSwitchHandlers