NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS fungsi panggilan balik (ndis.h)

Ekstensi sakelar yang dapat diperluas Hyper-V memanggil fungsi UpdateNetBufferListDestinations untuk melakukan modifikasi yang dilakukan ekstensi pada paket yang berisi beberapa port tujuan switch yang dapat diperluas. Fungsi ini menyimpan modifikasi ini ke konteks penerusan sakelar yang dapat diperluas out-of-band (OOB) dari struktur NET_BUFFER_LIST paket.

Sintaks

NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS NdisSwitchUpdateNetBufferListDestinations;

NDIS_STATUS NdisSwitchUpdateNetBufferListDestinations(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      UINT32 NumberOfNewDestinations,
  [in]      PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Destinations
)
{...}

Parameter

[in] NdisSwitchContext

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

[in, out] NetBufferList

Penunjuk ke struktur NET_BUFFER_LIST untuk satu paket.

Catatan Struktur ini harus berisi konteks penerusan sakelar yang dapat diperluas. Jika ekstensi membuat atau mengkloning paket, sebelumnya harus mengalokasikan struktur ini dengan memanggil fungsi AllocateNetBufferListForwardingContext .
 

[in] NumberOfNewDestinations

Nilai UINT32 yang menentukan jumlah port tujuan baru yang ditambahkan ke paket.

[in] Destinations

Penunjuk ke struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Struktur ini menentukan port tujuan sakelar yang dapat diperluas dari paket.

Catatan Ekstensi menerima struktur ini melalui panggilan sebelumnya ke fungsi GetNetBufferListDestinations .
 

Nilai kembali

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

Keterangan

Ekstensi sakelar yang dapat diperluas memanggil fungsi GetNetBufferListDestinations untuk mendapatkan array port tujuan sakelar yang dapat diperluas untuk paket. Jika fungsi berhasil dikembalikan, array diperoleh melalui parameter Tujuan , yang berisi penunjuk ke struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Setiap elemen dalam array ini diformat sebagai struktur NDIS_SWITCH_PORT_DESTINATION yang menentukan port tujuan untuk paket.

Setelah ekstensi mendapatkan struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , ekstensi dapat melakukan hal berikut:

Jika ekstensi menambahkan atau memodifikasi port tujuan dalam struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , ekstensi harus memanggil fungsi UpdateNetBufferListDestinations untuk menerapkan perubahan tersebut ke struktur NET_BUFFER_LIST paket.
Catatan Hanya ekstensi penerusan yang dapat memanggil UpdateNetBufferListDestinations untuk menerapkan port tujuan yang ditambahkan atau diubah untuk paket dengan beberapa port tujuan. Untuk informasi selengkapnya tentang jenis ekstensi ini, lihat Ekstensi Penerusan.
 
Jika panggilan ke UpdateNetBufferListDestinations mengembalikan NDIS_STATUS_SUCCESS, antarmuka sakelar yang dapat diperluas menjamin bahwa port sakelar yang dapat diperluas dan koneksi adaptor jaringan yang dirujuk di port tujuan tidak akan dihapus sampai operasi kirim atau terima paket selesai.

Selain itu, setelah perubahan untuk port tujuan diterapkan, port tujuan tidak dapat dihapus, dan hanya anggota IsExcluded dari struktur NDIS_SWITCH_PORT_DESTINATION port tujuan yang dapat diubah. Untuk informasi selengkapnya, lihat Mengecualikan Pengiriman Paket ke Port Tujuan Switch yang Dapat Diperluas.

Catatan Untuk alasan performa, ekstensi tidak boleh memanggil fungsi UpdateNetBufferListDestinations untuk menerapkan perubahan pada paket hanya dengan satu port tujuan. Sebagai gantinya, ekstensi memanggil AddNetBufferListDestination untuk menerapkan perubahan pada port tujuan paket.
 
Untuk informasi selengkapnya tentang konteks penerusan sakelar yang dapat diperluas, lihat Konteks Penerusan Sakelar Yang Dapat Diperluas Hyper-V.

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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

NdisFOidRequest

OID_SWITCH_NIC_DELETE