Bagikan melalui


Meneruskan Permintaan OID ke Adaptor Jaringan Fisik

Topik ini membahas bagaimana ekstensi sakelar Hyper-V yang dapat diperluas meneruskan permintaan pengidentifikasi objek (OID) untuk adaptor fisik yang mendasar melalui jalur kontrol sakelar yang dapat diperluas Hyper-V. Ekstensi ini juga dapat berasal dari permintaan OID ke adaptor jaringan fisik yang mendasar dengan mengikuti metode yang dijelaskan dalam topik ini.

Misalnya, adaptor jaringan eksternal dapat terikat ke tepi miniport virtual dari driver perantara multiplekser NDIS (MUX). Driver MUX terikat dengan tim dari satu atau beberapa jaringan fisik pada host. Konfigurasi ini dikenal sebagai tim pengalih yang dapat diperluas.

Dalam konfigurasi ini, ekstensi sakelar yang dapat diperluas diekspos ke setiap adaptor jaringan dalam tim. Ini memungkinkan ekstensi untuk mengelola konfigurasi dan penggunaan adaptor jaringan individual dalam tim. Misalnya, ekstensi penerusan dapat memberikan dukungan untuk solusi load balancing failover (LBFO) melalui tim dengan meneruskan paket keluar ke adaptor individual. Ekstensi penerusan yang mengelola tim pengalih yang dapat diperluas dikenal sebagai penyedia tim. Untuk informasi selengkapnya tentang penyedia tim, lihat Ekstensi Penyedia Teaming.

Gambar berikut menunjukkan contoh tim sakelar yang dapat diperluas untuk NDIS 6.40 (Windows Server 2012 R2) dan yang lebih baru.

diagram jalur kontrol oid untuk ndis 6.40.

Gambar berikut menunjukkan contoh tim sakelar yang dapat diperluas untuk NDIS 6.30 (Windows Server 2012).

diagram tim sakelar yang dapat diperluas untuk ndis 6.30.

Catatan Dalam antarmuka sakelar hyper-V yang dapat diperluas, driver filter NDIS dikenal sebagai ekstensi sakelar yang dapat diperluas dan tumpukan driver dikenal sebagai tumpukan driver sakelar yang dapat diperluas.

Permintaan OID harus dienkapsulasi untuk meneruskan permintaan ke adaptor jaringan fisik yang mendasarinya. Permintaan OID pertama kali dienkapsulasi di dalam struktur NDIS_SWITCH_NIC_OID_REQUEST . Kemudian, permintaan OID diteruskan melalui jalur kontrol sakelar yang dapat diperluas oleh permintaan set OID_SWITCH_NIC_REQUEST OID.

Permintaan OID ke adaptor fisik yang mendasar dikeluarkan oleh hal berikut:

Antarmuka sakelar yang dapat diperluas.
Permintaan OID, seperti permintaan untuk offload perangkat keras, dikeluarkan oleh protokol yang terlalu berlebihan atau driver filter yang berjalan di salah satu hal berikut:

  • Sistem operasi manajemen yang berjalan di partisi induk Hyper-V.

  • Sistem operasi tamu yang berjalan di partisi anak Hyper-V.

Ketika permintaan OID ini diterima oleh sakelar yang dapat diperluas, permintaan tersebut dienkapsulasi dan diteruskan melalui jalur kontrol sakelar yang dapat diperluas. Ketika ekstensi penerusan menerima permintaan OID yang dienkapsulasi, ekstensi tersebut dapat meneruskan permintaan ke adaptor fisik yang mendasarinya. Kemampuan ini sangat berguna untuk mengonfigurasi tim sakelar yang dapat diperluas untuk offload perangkat keras.

Misalnya, driver MUX mengiklankan kemampuan umum dari seluruh tim switch yang dapat diperluas. Namun, ekstensi penerusan dapat mengeluarkan permintaan OID untuk mengkueri atau mengatur kemampuan adaptor individual dalam tim. Kemudian, ekstensi penerusan dapat berasal dari indikasi status NDIS dari adaptor jaringan eksternal untuk memberi tahu driver yang terlalu berlebihan tentang kemampuan yang berlaku untuk seluruh tim. Untuk informasi selengkapnya tentang prosedur ini, lihat Asal Indikasi Status NDIS dari Adaptor Jaringan Fisik.

Ketika ekstensi penerusan meneruskan permintaan OID melalui jalur kontrol, ekstensi tersebut diterima oleh adaptor jaringan eksternal. Pada titik ini, permintaan OID didekapsulasi dan diteruskan ke adaptor jaringan fisik yang ditentukan.

Catatan Dimulai dengan Windows Server 2012, hanya permintaan OID offload perangkat keras yang dienkapsulasi dan diteruskan dengan cara ini. Misalnya, permintaan offload OID untuk antrean komputer virtual (VMQ) atau keamanan Protokol Internet (IPsec) dienkapsulasi dan diteruskan melalui jalur kontrol sakelar yang dapat diperluas. Untuk informasi selengkapnya, lihat Mengelola Permintaan OID Offload Perangkat Keras ke Adaptor Jaringan Fisik.

Ekstensi penerusan.
Ekstensi penerusan dapat berasal dari permintaan OID yang dienkapsulasi sendiri dan meneruskannya ke adaptor jaringan fisik yang mendasarinya. Ekstensi penerusan dapat merangkum permintaan OID NDIS standar. Ekstensi penerusan juga dapat merangkum permintaan OID privat yang ditentukan oleh vendor perangkat keras independen (IHV) untuk adaptor jaringan fisik. Ini memungkinkan ekstensi penerusan yang juga dikembangkan oleh IHV untuk mengaktifkan atau menonaktifkan atribut kepemilikan pada adaptor fisik individu dalam tim.

Selain itu, ekstensi penerusan dapat berasal dari permintaan OID offload perangkat keras yang dienkapsulasi untuk mengalokasikan sumber daya untuk partisi anak Hyper-V tertentu. Misalnya, ekstensi penerusan dapat berasal dari permintaan OID yang dienkapsulasi dari OID_RECEIVE_FILTER_ALLOCATE_QUEUE untuk mengalokasikan VMQ untuk partisi anak tertentu. Dalam hal ini, ekstensi merangkum permintaan sebagai berasal dari port sakelar yang dapat diperluas dan koneksi adaptor jaringan yang terkait dengan partisi.

Catatan Ekstensi penerusan hanya dapat berasal dari permintaan OID offload perangkat keras yang dienkapsulasi sendiri jika memfilter permintaan OID yang sama yang dikeluarkan oleh driver yang terlalu berlebihan. Dalam hal ini, ekstensi tidak boleh meneruskan permintaan OID asli. Sebagai gantinya, ekstensi harus memanggil NdisFOidRequestComplete untuk menyelesaikan permintaan ini ketika NDIS memanggil FilterOidRequestComplete untuk menyelesaikan permintaan OID yang berasal.

Memfilter atau menangkap ekstensi
Ekstensi pemfilteran atau penangkapan dapat berasal dari permintaan kueri OID yang dienkapsulasi sendiri dan meneruskannya ke adaptor jaringan fisik yang mendasarinya. Ekstensi ini dapat merangkum permintaan kueri OID NDIS standar atau permintaan kueri OID privat yang ditentukan oleh vendor perangkat keras independen (IHV) untuk adaptor jaringan fisik.

Catatan Hanya ekstensi penerusan yang dapat berasal dari permintaan set OID yang dienkapsulasi ke adaptor fisik yang mendasarinya.

Ekstensi penerusan harus mengikuti langkah-langkah ini saat meneruskan, mengalihkan, atau berasal dari permintaan OID yang dienkapsulasi untuk adaptor fisik yang mendasarinya:

  1. Jika ekstensi penerusan berasal dari permintaan OID, ekstensi harus menginisialisasi struktur NDIS_OID_REQUEST yang dialokasikan ekstensi dengan informasi yang terkait dengan permintaan.

    Jika ekstensi meneruskan permintaan OID, ekstensi tidak boleh mengubah struktur NDIS_OID_REQUEST yang ada yang direferensikan oleh parameter OidRequest dari fungsi FilterOidRequest . Sebagai gantinya, ekstensi harus memanggil NdisAllocateCloneOidRequest untuk mengalokasikan memori untuk struktur NDIS_OID_REQUEST baru dan menyalin semua informasi dari struktur NDIS_OID_REQUEST yang ada.

  2. Ekstensi menetapkan anggota struktur NDIS_SWITCH_NIC_OID_REQUEST yang dialokasikan ekstensi ke nilai berikut:

    • Anggota DestinationPortId harus diatur ke pengidentifikasi port sakelar yang dapat diperluas tempat adaptor jaringan eksternal tersambung.

    • Anggota DestinationNicIndex harus diatur ke nilai indeks bukan nol dari adaptor jaringan fisik yang mendasar.

      Untuk informasi selengkapnya tentang nilai indeks ini, lihat Nilai Indeks Adapter Jaringan.

    • Jika ekstensi penerusan berasal dari permintaan OID offload perangkat keras untuk partisi anak Hyper-V, anggota SourcePortId harus diatur ke pengidentifikasi port yang digunakan oleh partisi. Selain itu, anggota SourceNicIndex harus diatur ke indeks adaptor jaringan untuk koneksi jaringan ke port tersebut.

      Jika ekstensi penerusan berasal dari permintaan OID standar atau privat untuk tujuannya sendiri, anggota SourcePortId dan SourceNicIndex harus diatur ke nol.

      Jika ekstensi penerusan meneruskan atau mengalihkan permintaan OID offload perangkat keras, ekstensi tersebut harus mempertahankan nilai anggota SourcePortId dan SourceNicIndex yang ditetapkan oleh antarmuka sakelar yang dapat diperluas.

    • Anggota OidRequest harus diatur ke penunjuk ke struktur NDIS_OID_REQUEST yang diinisialisasi untuk permintaan OID yang dienkapsulasi. Ekstensi penerusan mengalokasikan dan menginisialisasi struktur ini atau menggunakan salinan struktur yang dikloning.

  3. Ekstensi menetapkan anggota struktur NDIS_OID_REQUEST yang dialokasikan ekstensi ke nilai berikut:

    • Anggota Oid harus diatur ke OID_SWITCH_NIC_REQUEST.

    • Anggota InformationBuffer harus berisi penunjuk ke buffer yang berisi data permintaan OID yang dihasilkan atau difilter.

    • Anggota InformationBufferLength harus berisi panjang, dalam byte, dari buffer yang berisi data permintaan OID yang dihasilkan atau difilter.

    Ekstensi mengatur anggota lain ke nilai yang valid untuk struktur NDIS_OID_REQUEST .

  4. Ekstensi memanggil ReferenceSwitchNic untuk menambah penghitung referensi untuk indeks adaptor jaringan fisik tujuan. Ini menjamin bahwa antarmuka sakelar yang dapat diperluas tidak akan menghapus koneksi adaptor jaringan fisik sementara penghitung referensinya bukan nol.

    Ketika ekstensi memanggil ReferenceSwitchNic, ekstensi mengatur parameter SwitchPortId ke nilai yang ditentukan untuk anggota DestinationPortId . Ekstensi ini juga mengatur parameter SwitchNicIndex ke nilai yang ditentukan untuk anggota DestinationNicIndex .

    Catatan Jika ReferenceSwitchNic tidak mengembalikan NDIS_STATUS_SUCCESS, permintaan OID tidak dapat diteruskan ke adaptor jaringan fisik tujuan.

  5. Jika ekstensi penerusan berasal dari permintaan OID offload perangkat keras untuk partisi anak Hyper-V, ekstensi ini juga memanggil ReferenceSwitchNic untuk meningkatkan penghitung referensi untuk indeks koneksi adaptor jaringan sumber yang terkait dengan partisi. Ini menjamin bahwa antarmuka sakelar yang dapat diperluas tidak akan menghapus koneksi adaptor jaringan fisik sementara penghitung referensinya bukan nol.

    Ketika ekstensi memanggil ReferenceSwitchNic, ekstensi mengatur parameter SwitchPortId ke nilai yang ditentukan untuk anggota SourcePortId . Ekstensi ini juga mengatur parameter SwitchNicIndex ke nilai yang ditentukan untuk anggota SourceNicIndex .

    Catatan Jika ReferenceSwitchNic tidak mengembalikan NDIS_STATUS_SUCCESS, permintaan OID tidak dapat diteruskan ke adaptor jaringan fisik tujuan.

  6. Ekstensi memanggil NdisFOidRequest untuk meneruskan permintaan OID yang dienkapsulasi ke port sakelar dan adaptor jaringan yang dapat diperluas tujuan yang ditentukan.

    Catatan Jika ekstensi meneruskan permintaan OID yang difilter, ekstensi harus memanggil NdisFOidRequest dalam konteks panggilan ke fungsi FilterOidRequest-nya . Jika ekstensi meneruskan permintaan OID yang telah dihasilkannya, ekstensi memanggil NdisFIndicateStatus saat berada di status Berjalan, Memulai Ulang, Dijeda, dan Menjeda . Untuk informasi selengkapnya tentang status ini, lihat Filter Status dan Operasi Modul.

  7. Ketika NDIS memanggil fungsi FilterOidRequestComplete , ekstensi memanggil DereferenceSwitchNic untuk menghapus penghitung referensi untuk indeks adaptor jaringan fisik tujuan.

    Jika ekstensi penerusan berasal dari permintaan OID offload perangkat keras untuk partisi anak Hyper-V, ekstensi ini juga memanggil DereferenceSwitchNic untuk menghapus penghitung referensi untuk indeks koneksi adaptor jaringan sumber untuk adaptor.

    Dalam kedua kasus, ekstensi mengatur parameter SwitchPortId dan SwitchNicIndex ke nilai yang sama dengan yang digunakan dalam panggilan ke ReferenceSwitchNic.

Untuk informasi selengkapnya tentang cara ekstensi mengeluarkan permintaan OID, lihat Menghasilkan Permintaan OID dari Driver Filter NDIS.

Untuk informasi selengkapnya tentang driver MUX, lihat Driver Perantara NDIS MUX.