NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO union (ndis.h)
Serikat NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO menentukan informasi untuk meneruskan paket ke satu atau beberapa port sakelar yang dapat diperluas Hyper-V.
Informasi ini terkandung dalam data out-of-band (OOB) dari struktur NET_BUFFER_LIST paket.
Sintaks
typedef union _NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO {
UINT64 AsUINT64;
struct {
UINT32 NumAvailableDestinations : 16;
UINT32 SourcePortId : 16;
UINT32 SourceNicIndex : 8;
UINT32 NativeForwardingRequired : 1;
#if ...
UINT32 Reserved1 : 1;
#else
UINT32 Reserved1 : 2;
#endif
UINT32 IsPacketDataSafe : 1;
UINT32 SafePacketDataSize : 12;
UINT32 IsPacketDataUncached : 1;
UINT32 IsSafePacketDataUncached : 1;
UINT32 Reserved2 : 7;
};
} NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO, *PNDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO;
Anggota
AsUINT64
Nilai NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 64-bit lengkap.
NumAvailableDestinations
Nilai yang menentukan jumlah elemen port tujuan sakelar yang tidak dapat diperluas dalam struktur NET_BUFFER_LIST . Untuk informasi lebih lanjut, lihat bagian Keterangan.
SourcePortId
Pengidentifikasi port sakelar sumber yang dapat diperluas dari mana NET_BUFFER_LIST berasal.
SourceNicIndex
Nilai UINT32 yang menentukan indeks adaptor jaringan sumber yang tersambung ke port sakelar yang dapat diperluas yang ditentukan oleh anggota SourcePortId .
Untuk informasi selengkapnya tentang nilai indeks ini, lihat Nilai Indeks Adapter Jaringan.
NativeForwardingRequired
Jika anggota ini diatur ke TRUE, paket adalah paket NVGRE, dan komponen Hyper-V Network Virtualization (HNV) dari sakelar yang dapat diperluas Hyper-V akan meneruskan paket ini. Untuk informasi selengkapnya, lihat Penerusan Hibrid.
Bendera ini tidak boleh ditulis oleh ekstensi apa pun.
Reserved1
Anggota ini dicadangkan untuk digunakan di masa mendatang oleh NDIS.
Anggota ini dicadangkan untuk digunakan di masa mendatang oleh NDIS.
IsPacketDataSafe
Jika anggota ini diatur ke TRUE, semua data paket berasal dari memori host tepercaya.
SafePacketDataSize
Nilai yang menentukan jumlah byte berturut-turut dalam data paket yang terletak di memori host tepercaya. Nilai ini berada dalam satuan byte dari awal data paket. Sisa data paket (jika ada) setelah nilai SafePacketDataSize terletak di memori bersama yang tidak tepercaya yang diakses oleh partisi anak dan induk Hyper-V.
Untuk informasi lebih lanjut, lihat bagian Keterangan.
IsPacketDataUncached
Jika bendera ini tidak diatur, seluruh data paket akan di-cache. Jika diatur, sebagian atau semua data tidak di-cache. Saat diatur, periksa bidang IsSafePacketDataUncached untuk melihat apakah setidaknya bagian SafePacketData di-cache.
IsSafePacketDataUncached
Jika bendera IsPacketDataUncached diatur, bidang ini menunjukkan apakah bagian SafePacketData dari paket di-cache. Jika demikian, lihat bidang SafePacketDataSize untuk berapa banyak byte yang di-cache.
Reserved2
Anggota ini dicadangkan untuk digunakan di masa mendatang oleh NDIS.
Keterangan
Ekstensi sakelar yang dapat diperluas dapat menggunakan makro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL untuk mengakses penyatuan NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dalam struktur NET_BUFFER_LIST .
Anggota NumAvailableDestinations dari serikat NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO menentukan jumlah elemen port tujuan switch yang dapat diperluas yang tidak digunakan dalam struktur NET_BUFFER_LIST . Setiap port tujuan sakelar yang dapat diperluas ditentukan oleh elemen NDIS_SWITCH_PORT_DESTINATION dalam struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY struktur NET_BUFFER_LIST . Ekstensi sakelar yang dapat diperluas memanggil GetNetBufferListDestinations untuk mendapatkan NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY saat ini dalam struktur NET_BUFFER_LIST .
Anggota NativeForwardingRequired menentukan apakah paket tersebut adalah paket NVGRE atau tidak. Jika TRUE, paket adalah paket NVGRE, dan ekstensi penerusan tidak menentukan array port tujuan penerusan paket, meskipun dapat menambahkan atau mengecualikan port tujuan dalam array. Untuk informasi selengkapnya, lihat Penerusan Hibrid.
Bendera IsPacketDataUncached dapat membantu ekstensi sakelar yang dapat diperluas menentukan apakah sebagian atau semua data paket di-cache atau tidak. Jika bendera ini diatur, sebagian atau semua data tidak di-cache, dan bendera IsSafePacketDataUncached memberi tahu ekstensi apakah bagian data paket aman di-cache. Jika data paket aman di-cache, maka anggota SafePacketDataSize menentukan berapa banyak byte yang di-cache.
SafePacketDataSize menentukan ukuran data paket yang terletak di memori lokal, atau tepercaya, dalam sistem operasi induk partisi induk Hyper-V. Memori ini tidak dapat diakses oleh partisi anak. Oleh karena itu, dianggap "aman" dari pembaruan yang tidak disinkronkan oleh sistem operasi tamu yang berjalan di partisi tersebut.
Jika ekstensi sakelar yang dapat diperluas memerlukan ruang yang lebih tepercaya untuk memeriksa data paket, ekstensi sakelar harus mengikuti langkah-langkah berikut:
- Ekstensi harus menduplikasi struktur NET_BUFFER_LIST paket dengan mengalokasikan struktur NET_BUFFER_LIST dan NET_BUFFER . Ekstensi kemudian memanggil NdisCopyFromNetBufferToNetBuffer untuk menduplikasi struktur NET_BUFFER paket. Jika fungsi ini berhasil diselesaikan, data paket disalin ke memori tepercaya.
- Ekstensi harus memanggil CopyNetBufferListInfo untuk menyalin data OOB paket ke paket duplikat.
- Setelah paket asli diduplikasi, ekstensi harus mendapatkan penyatuan NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dalam paket duplikat dengan menggunakan makro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL . Ekstensi harus mengatur anggota IsPacketDataSafe ke TRUE.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.30 dan yang lebih baru. |
Header | ndis.h (termasuk Ndis.h) |
Lihat juga
Meneruskan Paket ke Port Sakelar yang Dapat Diperluas Hyper-V
Meneruskan Paket ke Adaptor Jaringan Fisik
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk