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.

Catatan Bendera ini hanya tersedia di NDIS 6.40 dan yang lebih baru.

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.

Catatan Anggota ini hanya valid jika anggota IsPacketDataSafe diatur ke FALSE.

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:

  1. 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.
  2. Ekstensi harus memanggil CopyNetBufferListInfo untuk menyalin data OOB paket ke paket duplikat.
  3. 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.
Untuk informasi selengkapnya tentang cara menduplikasi paket di antarmuka sakelar yang dapat diperluas, lihat Lalu Lintas Paket Asal.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.30 dan yang lebih baru.
Header ndis.h (termasuk Ndis.h)

Lihat juga

Ekstensi Penerusan

Meneruskan Paket ke Port Sakelar yang Dapat Diperluas Hyper-V

Meneruskan Paket ke Adaptor Jaringan Fisik

GetNetBufferListDestinations

Penerusan Hibrid

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER_LIST

NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL

Gambaran Umum Hyper-V Extensible Switch