Bagikan melalui


NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT fungsi panggilan balik (ndis.h)

Fungsi AllocateNetBufferListForwardingContext menyiapkan struktur NET_BUFFER_LIST untuk operasi kirim atau terima dalam sakelar yang dapat diperluas.

Sintaks

NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT NdisSwitchAllocateNetBufferListForwardingContext;

NDIS_STATUS NdisSwitchAllocateNetBufferListForwardingContext(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList
)
{...}

Parameter

[in] NdisSwitchContext

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

[in, out] NetBufferList

Penunjuk ke daftar struktur NET_BUFFER_LIST yang ditautkan.

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 dapat memulai operasi pengiriman paket dalam jalur data sakelar yang dapat diperluas. Misalnya, ekstensi dapat mengirim paket ke port apa pun pada sakelar yang dapat diperluas. Untuk informasi selengkapnya tentang jalur data ini, lihat Jalur Data Hyper-V Extensible Switch.

Setelah ekstensi memanggil NdisAllocateNetBufferList atau NdisAllocateCloneNetBufferList untuk membuat atau mengkloning paket dari kumpulan NET_BUFFER_LIST-nya , ekstensi harus memanggil fungsi AllocateNetBufferListForwardingContext . Fungsi ini mengalokasikan dan menginisialisasi konteks penerusan sakelar yang dapat diperluas out-of-band (OOB) untuk struktur NET_BUFFER_LIST yang ditentukan. Untuk informasi selengkapnya tentang konteks ini, lihat Konteks Penerusan Sakelar Yang Dapat Diperluas Hyper-V.

Ekstensi harus mengikuti panduan ini untuk mengalokasikan konteks penerusan melalui fungsi AllocateNetBufferListForwardingContext :

  • Ekstensi memanggil NdisAllocateNetBufferList untuk mengalokasikan paket dari kumpulan NET_BUFFER_LIST ekstensi untuk operasi kirim atau terima melalui sakelar yang dapat diperluas. Sebelum ekstensi menginisialisasi port sumber dan tujuan untuk paket, ekstensi harus memanggil AllocateNetBufferListForwardingContext.

    Untuk informasi selengkapnya tentang cara menentukan port sakelar sumber dan tujuan yang dapat diperluas, lihat Mengelola Sumber Sakelar Hyper-V yang Dapat Diperluas dan Data Port Tujuan.

  • Sebelum ekstensi memanggil AllocateNetBufferListForwardingContext, ekstensi harus mengatur anggota SourceHandle dari setiap struktur NET_BUFFER_LIST yang dialokasikan ke nilai handel yang mengidentifikasi ekstensi. Ekstensi menerima handel ini melalui parameter NdisFilterHandle saat NDIS memanggil fungsi FilterAttach ekstensi.
  • Ketika operasi pengiriman selesai, ekstensi harus memanggil fungsi FreeNetBufferListForwardingContext untuk membatalkan alokasi sumber daya untuk konteks penerusan. Ekstensi harus memanggil fungsi ini sebelum memanggil NdisFreeNetBufferList untuk mengembalikan paket ke kumpulan NET_BUFFER_LIST .
  • Jika ekstensi mengkloning paket, ekstensi harus memanggil CopyNetBufferListInfo untuk menyalin konteks penerusan dari paket asli ke paket kloning. Ekstensi harus melakukan ini setelah memanggil AllocateNetBufferListForwardingContext.
Untuk informasi selengkapnya tentang cara memulai operasi pengiriman, lihat Memfilter Operasi Kirim dan Terima Modul.
Catatan Jika parameter NetBufferList berisi penunjuk ke daftar tertaut dari beberapa struktur NET_BUFFER_LIST , hanya struktur NET_BUFFER_LIST pertama dalam daftar yang memiliki konteks penerusan yang dialokasikan untuknya.
 

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

CopyNetBufferListInfo

FilterAttach

FreeNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateNetBufferList

NdisFGetOptionalSwitchHandlers

NdisFreeNetBufferList