struktur NDIS_RECEIVE_FILTER_FIELD_PARAMETERS (ntddndis.h)
Struktur NDIS_RECEIVE_FILTER_FIELD_PARAMETERS menentukan kriteria pengujian filter untuk bidang di header paket jaringan.
Filter penerimaan NDIS digunakan dalam antarmuka NDIS berikut:
-
NDIS Packet Coalescing. Untuk informasi selengkapnya tentang cara menggunakan filter terima di antarmuka ini, lihat Mengelola Filter Penerima Coalescing Paket.
-
Virtualisasi I/O Akar Tunggal (SR-IOV). Untuk informasi selengkapnya tentang cara menggunakan filter terima di antarmuka ini, lihat Mengatur Filter Terima pada Port Virtual.
-
Antrean Komputer Virtual (VMQ). Untuk informasi selengkapnya tentang cara menggunakan filter terima di antarmuka ini, lihat Mengatur dan Menghapus Filter VMQ.
Sintaks
typedef struct _NDIS_RECEIVE_FILTER_FIELD_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_FRAME_HEADER FrameHeader;
NDIS_RECEIVE_FILTER_TEST ReceiveFilterTest;
union {
NDIS_MAC_HEADER_FIELD MacHeaderField;
NDIS_ARP_HEADER_FIELD ArpHeaderField;
NDIS_IPV4_HEADER_FIELD IPv4HeaderField;
NDIS_IPV6_HEADER_FIELD IPv6HeaderField;
NDIS_UDP_HEADER_FIELD UdpHeaderField;
} HeaderField;
_HEADER_FIELD _HEADER_FIELD;
union {
UCHAR FieldByteValue;
USHORT FieldShortValue;
ULONG FieldLongValue;
ULONG64 FieldLong64Value;
UCHAR FieldByteArrayValue[16];
} FieldValue;
_FIELD_VALUE _FIELD_VALUE;
union {
UCHAR ResultByteValue;
USHORT ResultShortValue;
ULONG ResultLongValue;
ULONG64 ResultLong64Value;
UCHAR ResultByteArrayValue[16];
} ResultValue;
_RESULT_VALUE _RESULT_VALUE;
} NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, *PNDIS_RECEIVE_FILTER_FIELD_PARAMETERS;
Anggota
Header
Struktur NDIS_OBJECT_HEADER untuk struktur NDIS_RECEIVE_FILTER_FIELD_PARAMETERS . Driver mengatur anggota Jenis struktur yang ditentukan Header untuk NDIS_OBJECT_TYPE_DEFAULT.
Untuk menunjukkan versi struktur NDIS_RECEIVE_FILTER_FIELD_PARAMETERS , driver mengatur anggota Revisi ke salah satu nilai berikut:
Flags
Bitwise ATAU bendera. Bendera berikut ini valid untuk OID_RECEIVE_FILTER_SET_FILTER OID.
Nilai | Makna |
---|---|
|
Jika bendera ini diatur, adaptor jaringan hanya boleh menunjukkan paket yang diterima yang melewati kriteria berikut:
Catatan Jika driver yang terlalu berlebihan mengatur filter alamat MAC dan filter pengidentifikasi VLAN dengan permintaan OID OID_RECEIVE_FILTER_SET_FILTER, driver tersebut tidak mengatur bendera ini di salah satu bidang filter. Dalam hal ini, driver miniport harus menunjukkan paket yang cocok dengan alamat MAC yang ditentukan dan pengidentifikasi VLAN. Artinya, driver miniport tidak boleh menunjukkan paket dengan alamat MAC yang cocok yang memiliki pengidentifikasi VLAN nol atau paket yang tidak diberi tag.
|
FrameHeader
Jenis header dalam bingkai data jaringan.
ReceiveFilterTest
Jenis pengujian yang akan dilakukan untuk filter terima.
HeaderField
Jenis bidang dalam header. Jenis bidang (misalnya, NDIS_MAC_HEADER_FIELD) sesuai dengan jenis header yang ditentukan dalam anggota FrameHeader .
Serikat ini berisi anggota berikut:
HeaderField.MacHeaderField
Jenis bidang di header MAC.
HeaderField.ArpHeaderField
Jenis bidang dalam header Protokol Resolusi Alamat (ARP).
HeaderField.IPv4HeaderField
Nilai enumerasi NDIS_IPV4_HEADER_FIELD yang menentukan jenis bidang dalam header IP versi 4 (IPv4).
HeaderField.IPv6HeaderField
Nilai enumerasi NDIS_IPV6_HEADER_FIELD yang menentukan jenis bidang dalam header IP versi 6 (IPv6).
HeaderField.UdpHeaderField
Jenis bidang di header Protokol Datagram Pengguna (UDP).
_HEADER_FIELD
FieldValue
Nilai yang dibandingkan dengan adaptor miniport dengan nilai bidang header yang sesuai dalam paket masuk. Lokasi nilai bidang header ditentukan oleh jenis bidang yang ditentukan dalam anggota HeaderField .
Untuk informasi lebih lanjut, lihat bagian Keterangan.
Serikat ini berisi anggota berikut:
FieldValue.FieldByteValue
Nilai UCHAR untuk dibandingkan dengan bidang dalam paket jaringan.
FieldValue.FieldShortValue
Nilai USHORT untuk dibandingkan dengan bidang dalam paket jaringan.
FieldValue.FieldLongValue
Nilai ULONG untuk dibandingkan dengan bidang dalam paket jaringan.
FieldValue.FieldLong64Value
Nilai ULONG64 untuk dibandingkan dengan bidang dalam paket jaringan.
FieldValue.FieldByteArrayValue[16]
Array UCHAR untuk dibandingkan dengan bidang dalam paket jaringan.
_FIELD_VALUE
ResultValue
Serikat yang berisi nilai hasil pengujian.
Jika anggota ReceiveFilterTest diatur ke NdisReceiveFilterTestMaskEqual, adaptor jaringan terlebih dahulu menghitung hasil dari nilai di anggota FieldValue dan nilai bidang header seperti yang ditentukan oleh anggota HeaderField . Adaptor kemudian membandingkan hasil terhitung dengan ResultValue.
Untuk informasi lebih lanjut, lihat bagian Keterangan.
Serikat ini berisi anggota berikut:
ResultValue.ResultByteValue
Nilai UCHAR untuk dibandingkan dengan hasil pengujian.
ResultValue.ResultShortValue
Nilai USHORT untuk dibandingkan dengan hasil pengujian.
ResultValue.ResultLongValue
Nilai ULONG untuk dibandingkan dengan hasil pengujian.
ResultValue.ResultLong64Value
Nilai ULONG64 untuk dibandingkan dengan hasil pengujian.
ResultValue.ResultByteArrayValue[16]
Array UCHAR untuk dibandingkan dengan hasil pengujian.
_RESULT_VALUE
Keterangan
Struktur NDIS_RECEIVE_FILTER_FIELD_PARAMETERS menentukan kriteria pengujian filter untuk satu bidang dalam array pengujian bidang yang mungkin dapat ditentukan dengan NDIS_RECEIVE_FILTER_PARAMETERS struktur.
Tabel berikut ini menjelaskan bagaimana adaptor jaringan menggunakan anggota ReceiveFilterTest, FieldValue, dan ResultValue untuk melakukan pengujian filter pada nilai bidang header yang ditentukan dari paket yang diterima.
Nilai ReceiveFilterTest | Pengujian filter yang dilakukan oleh adaptor jaringan |
---|---|
NdisReceiveFilterTestEqual | (<nilai bidang header> == FieldValue) |
NdisReceiveFilterTestMaskEqual | ((<nilai bidang header> & FieldValue) == ResultValue) |
NdisReceiveFilterTestNotEqual | (<nilai bidang header> != FieldValue) |
- Untuk NDIS 6.20, driver miniport harus mengembalikan status gagal untuk permintaan OID OID_RECEIVE_FILTER_SET_FILTER.
-
Dimulai dengan NDIS 6.30, jika bendera NDIS_RECEIVE_FILTER_FIELD_MAC_HEADER_VLAN_UNTAGGED_OR_ZERO tidak diatur dan tidak ada filter pengidentifikasi VLAN yang dikonfigurasi oleh permintaan metode OID_RECEIVE_FILTER_SET_FILTER , driver miniport harus melakukan salah satu hal berikut:
- Driver miniport harus mengembalikan status gagal untuk permintaan metode OID_RECEIVE_FILTER_SET_FILTER .
- Driver miniport harus mengonfigurasi adaptor jaringan untuk memeriksa dan memfilter bidang alamat MAC yang ditentukan. Jika tag VLAN ada dalam paket yang diterima, adaptor jaringan harus menghapusnya dari data paket. Driver miniport harus menempatkan tag VLAN dalam NDIS_NET_BUFFER_LIST_8021Q_INFO yang terkait dengan struktur NET_BUFFER_LIST paket.
-
Driver miniport harus mengonfigurasi adaptor jaringan untuk memeriksa dan memfilter alamat MAC dan bidang pengidentifikasi VLAN yang ditentukan.
Jika tag VLAN ada dalam paket yang diterima, adaptor jaringan harus menghapusnya dari data paket. Driver miniport harus menempatkan tag VLAN dalam NDIS_NET_BUFFER_LIST_8021Q_INFO yang terkait dengan struktur NET_BUFFER_LIST paket.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.20 dan yang lebih baru. |
Header | ntddndis.h (termasuk Ndis.h) |
Lihat juga
NDIS_RECEIVE_FILTER_PARAMETERSSaran 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