Bagikan melalui


Kata Kunci Enumerasi

NDIS 6.0 dan versi NDIS yang lebih baru menyediakan kata kunci enumerasi standar untuk driver miniport perangkat jaringan. Kata kunci enumerasi dikaitkan dengan nilai yang muncul sebagai daftar dalam menu.

Contoh berikut menunjukkan definisi file INF untuk kata kunci enumerasi.

HKR, Ndi\params\<SubkeyName>, ParamDesc, 0, "%<SubkeyName>%"
HKR, Ndi\params\<SubkeyName>, Type, 0, "enum"
HKR, Ndi\params\<SubkeyName>, Default, 0, "3"
HKR, Ndi\params\<SubkeyName>, Optional, 0, "0"
HKR, Ndi\params\<SubkeyName>\enum, "0", 0, "%Disabled%"
HKR, Ndi\params\<SubkeyName>\enum, "1", 0, "%Tx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "2", 0, "%Rx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "3", 0, "%Rx & Tx Enabled%"

Kata kunci enumerasi umum adalah:

*SpeedDuplex
Pengaturan kecepatan dan dupleks yang didukung perangkat. File INF perangkat hanya boleh mencantumkan pengaturan yang didukung perangkat terkait. Artinya, untuk perangkat Ethernet 10/100 yang hanya dapat mendukung mode dupleks penuh, pengaturan untuk Gigabit atau kecepatan yang lebih tinggi atau setengah dupleks tidak boleh tercantum dalam file INF terkait.

Nilai kecepatan yang tidak secara khusus didefinisikan sudah dengan nilai enumerasi 0 hingga 10 dapat ditetapkan sebagai angka yang merupakan nilai langsung dalam Mbps. Nilai langsung harus minimal 1.000 Mbps (1 Gbps) ke atas. Berikut adalah beberapa contoh untuk menentukan kecepatan secara langsung:

Nilai SpeedDuplex Kecepatan yang dihasilkan
1\.000 1 Gbps
10.000 10 Gbps
25.000 25 Gbps
50.000 50 Gbps
100.000 100 Gbps

*FlowControl
Kemampuan perangkat untuk mengaktifkan atau menonaktifkan kontrol alur di jalur kirim atau terima.

Catatan Perangkat Ethernet saat ini mendukung kontrol alur, dan Windows 8 driver dalam kotak untuk LAN memiliki kontrol alur yang diaktifkan secara default. Ketika debugger kernel melekat pada salah satu adaptor LAN ini, NIC akan mulai mendorong bingkai jeda kontrol aliran ke dalam jaringan. Sebagian besar sakelar jaringan akan bereaksi dengan mematikan jaringan untuk sementara waktu untuk semua komputer lain yang terhubung ke hub yang sama. Ini adalah skenario pengembangan umum, dan pengalaman pengguna akhir tidak diinginkan dan sulit didiagnosis.

Catatan Default Klien dan Server tidak sama; lihat tabel default di bawah ini.

Untuk alasan ini, dalam Windows 8 dan yang lebih baru, NDIS akan menonaktifkan kontrol alur secara otomatis ketika penelusuran kesalahan diaktifkan di komputer (misalnya, dengan mengetik bcdedit /set debug pada di baris perintah). Ketika debugging kernel diaktifkan dan miniport memanggil NdisReadConfiguration dan meneruskan "*FlowControl" untuk parameter Kata Kunci , NDIS akan mengambil alih nilai yang dikonfigurasi dan mengembalikan nol.

Jika Anda perlu mengaktifkan kontrol alur saat penelusuran kesalahan, NDIS menyediakan nilai registri AllowFlowControlUnderDebugger untuk memungkinkan Anda melakukannya. Nilai registri AllowFlowControlUnderDebugger mencegah NDIS menonaktifkan kontrol alur, dan memungkinkan NIC untuk menjaga perilaku yang dikonfigurasi. Ini dapat ditemukan di bawah kunci registri berikut:

\ HKEY_LOCAL_MACHINESistem\CurrentControlSet\Layanan\NDIS\Parameter

Atur nilai registri ini ke 0x00000001.

Jika tidak ada, Anda dapat membuat nilai dengan nama AllowFlowControlUnderDebugger dan jenis REG_DWORD dan mengaturnya ke 0x00000001.

*PriorityVLANTag
Nilai yang menunjukkan apakah perangkat telah mengaktifkan atau menonaktifkan kemampuan untuk menyisipkan tag 802.1Q untuk prioritas paket dan LAN virtual (VLAN). Kata kunci ini tidak menunjukkan apakah perangkat mengaktifkan atau menonaktifkan prioritas paket atau tag VLAN. Sebaliknya, ini menjelaskan hal-hal berikut:

  • Apakah perangkat menyisipkan tag 802.1Q selama operasi pengiriman
  • Apakah informasi tag 802.1Q tersedia di informasi out-of-band (OOB) NET_BUFFER_LIST
  • Apakah perangkat menyalin tag 802.1Q ke OOB selama operasi penerimaan

Driver miniport harus menghapus header 802.1Q dari semua paket penerima terlepas dari pengaturan *PriorityVLANTag . Jika header 802.1Q dibiarkan dalam paket, driver lain mungkin tidak dapat mengurai paket dengan benar.

Jika bendera Rx diaktifkan pada jalur terima, driver miniport harus menyalin header 802.1Q yang dihapus ke OOB.

Jika tidak, jika bendera Rx dinonaktifkan, driver miniport tidak boleh menyalin header 802.1Q yang dihapus ke OOB.

Jika bendera Tx diaktifkan pada jalur transmisi, driver miniport harus melakukan hal berikut:

  • Masukkan header 802.1Q ke dalam setiap paket keluar dan isi dengan data dari OOB (jika ada data bukan nol di OOB).
  • Iklankan MacOptions yang sesuai di NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES (NDIS_MAC_OPTION_8021P_PRIORITY dan NDIS_MAC_OPTION_8021Q_VLAN).

Jika tidak, jika bendera Tx dinonaktifkan, maka:

  • Filter miniport tidak boleh menghormati informasi 802.1Q di OOB (dan karenanya tidak memasukkan tag apa pun).
  • Filter miniport tidak boleh mengiklankan MacOptions yang sesuai di NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.

Catatan Jika driver miniport mendukung kualitas layanan (QoS) NDIS, driver miniport juga harus membaca *nilai kata kunci QOS . Berdasarkan *nilai kata kunci QOS , nilai kata kunci *PriorityVLANTag ditafsirkan secara berbeda. Untuk informasi selengkapnya, lihat Kata Kunci INF Standar untuk QoS NDIS.

*InterruptModeration
Nilai yang menjelaskan apakah perangkat diaktifkan atau dinonaktifkan moderasi interupsi. Algoritma moderasi interupsi bergantung pada perangkat. Produsen perangkat dapat menggunakan kata kunci non-standar untuk mendukung pengaturan algoritma. Untuk informasi selengkapnya tentang moderasi interupsi, lihat Moderasi Interupsi.

*RSS
Nilai yang menjelaskan apakah perangkat diaktifkan atau dinonaktifkan menerima penskalakan sisi (RSS). Untuk informasi selengkapnya tentang RSS, lihat Menerima Penskalaan Sisi.

*HeaderDataSplit
Nilai yang menjelaskan apakah perangkat mengaktifkan atau menonaktifkan pemisahan data header. Untuk informasi selengkapnya tentang pemisahan data header, lihat Pemisahan Header-Data.

Kata kunci berikut dikaitkan dengan layanan offload koneksi:

*TCPConnectionOffloadIPv4

*TCPConnectionOffloadIPv6

Untuk informasi selengkapnya tentang kata kunci offload koneksi, lihat Menggunakan Nilai Registri untuk Mengaktifkan dan Menonaktifkan Offloading Koneksi.

Kata kunci berikut dikaitkan dengan layanan offload tugas:

*IPChecksumOffloadIPv4

*TCPChecksumOffloadIPv4

*TCPChecksumOffloadIPv6

*UDPChecksumOffloadIPv4

*UDPChecksumOffloadIPv6

*LsoV1IPv4

*LsoV2IPv4

Catatan Untuk perangkat yang mendukung offload pengiriman besar versi 1 (LSOv1) dan LSOv2 melalui IPv4, hanya kata kunci *LsoV2IPv4 yang harus digunakan dalam file INF dan nilai registri. Jika, misalnya, kata kunci *LsoV2IPv4 muncul dalam file INF dan kata kunci *LsoV1IPv4 muncul di registri (atau sebaliknya), kata kunci *LsoV2IPv4 selalu diutamakan.

*LsoV2IPv6

*IPsecOffloadV1IPv4

*IPsecOffloadV2

*IPsecOffloadV2IPv4

*TCPUDPChecksumOffloadIPv4

*TCPUDPChecksumOffloadIPv6

Untuk informasi selengkapnya tentang kata kunci offload TCP/IP, lihat Menggunakan Nilai Registri untuk Mengaktifkan dan Menonaktifkan Offloading Tugas.

Kolom dalam tabel di akhir topik ini menjelaskan atribut berikut untuk kata kunci enumerasi:

SubkeyName
Nama kata kunci yang harus Anda tentukan dalam file INF dan yang muncul di registri.

ParamDesc
Teks tampilan yang terkait dengan SubkeyName.

Nilai
Nilai bilangan bulat enumerasi yang terkait dengan setiap opsi dalam daftar. Nilai ini disimpan dalam NDI\params\SubkeyName\Value.

EnumDesc
Teks tampilan yang terkait dengan setiap nilai yang muncul di menu.

Default
Nilai default untuk menu.

Tabel berikut mencantumkan semua kata kunci dan menjelaskan nilai yang harus digunakan driver untuk atribut sebelumnya. Untuk informasi selengkapnya tentang kata kunci, cari kata kunci dalam dokumentasi WDK.

SubkeyName ParamDesc Nilai EnumDesc
*SpeedDuplex Kecepatan & Dupleks 0 (Default) Negosiasi Otomatis
1 10 Mbps Half Duplex
2 Dupleks Penuh 10 Mbps
3 100 Mbps Half Duplex
4 Dupleks Penuh 100 Mbps
5 1,0 Gbps Half Duplex
6 Dupleks Penuh 1,0 Gbps
7 Dupleks Penuh 10 Gbps
8 Dupleks Penuh 20 Gbps
9 Dupleks Penuh 40 Gbps
10 Dupleks Penuh 100 Gbps
*FlowControl Kontrol Alur 0 (Default Server) Tx & Rx Dinonaktifkan
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default Klien) Rx & Tx Diaktifkan
4 Negosiasi Otomatis
*PriorityVLANTag Prioritas Paket & VLAN 0 Prioritas Paket & VLAN Dinonaktifkan
1 Prioritas Paket Diaktifkan
2 VLAN Diaktifkan
3 (Default) Prioritas Paket & VLAN Diaktifkan
*InterruptModeration Moderasi Interupsi 0 Nonaktif
1 (Default) Aktif
*RSS Terima Penskalaian Sisi 0 Nonaktif
1 (Default) Aktif
*HeaderDataSplit Pemisahan Data Header 0 (Default) Nonaktif
1 Aktif
*TCPConnectionOffloadIPv4 Offload Koneksi TCP (IPv4) 0 Nonaktif
1 (Default) Aktif
*TCPConnectionOffloadIPv6 Offload Koneksi TCP (IPv6) 0 Nonaktif
1 (Default) Aktif
*IPChecksumOffloadIPv4 IPv4 Checksum Offload 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Rx & Tx Diaktifkan
*TCPChecksumOffloadIPv4 Offload Checksum TCP (IPv4) 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Rx & Tx Diaktifkan
*TCPChecksumOffloadIPv6 Offload Checksum TCP (IPv6) 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Rx & Tx Diaktifkan
*UDPChecksumOffloadIPv4 Offload Checksum UDP (IPv4) 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Rx & Tx Diaktifkan
*UDPChecksumOffloadIPv6 Offload Checksum UDP (IPv6) 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Rx & Tx Diaktifkan
*LsoV1IPv4 Offload Kirim Besar Versi 1 (IPv4) 0 Nonaktif
1 (Default) Aktif
*LsoV2IPv4 Offload Kirim Besar Versi 2 (IPv4) 0 Nonaktif
1 (Default) Aktif
*LsoV2IPv6 Offload Kirim Besar Versi 2 (IPv6) 0 Nonaktif
1 (Default) Aktif
*IPsecOffloadV1IPv4 Offload IPsec Versi 1 (IPv4) 0 Nonaktif
1 Header Autentikasi Diaktifkan
2 ESP Diaktifkan
3 (Default) Header Autentikasi & ESP Diaktifkan
*IPsecOffloadV2 IPsec Offload 0 Nonaktif
1 Header Autentikasi Diaktifkan
2 ESP Diaktifkan
3 (Default) Header Autentikasi & ESP Diaktifkan
*IPsecOffloadV2IPv4 Offload IPsec (hanya IPv4) 0 Nonaktif
1 Header Autentikasi Diaktifkan
2 ESP Diaktifkan
3 (Default) Header Autentikasi & ESP Diaktifkan
*TCPUDPChecksumOffloadIPv4 Offload Checksum TCP/UDP (IPv4) 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Tx dan Rx Diaktifkan
*TCPUDPChecksumOffloadIPv6 Offload Checksum TCP/UDP (IPv6) 0 Nonaktif
1 Tx Diaktifkan
2 Rx Diaktifkan
3 (Default) Tx dan Rx Diaktifkan