Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini membahas bagaimana ekstensi sakelar yang dapat diperluas Hyper-V meneruskan permintaan pengidentifikasi objek (OID) untuk adaptor fisik yang mendasar melalui jalur kontrol sakelar yang dapat diperluas Hyper-V. Ekstensi ini juga dapat memulai 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 ke tim dari satu atau beberapa jaringan fisik pada host. Konfigurasi ini dikenal sebagai tim switch yang dapat diperluas.
Dalam konfigurasi ini, ekstensi sakelar yang bisa diperluas diekspos ke setiap adaptor jaringan di dalam tim. Ini memungkinkan ekstensi untuk mengelola konfigurasi dan penggunaan adaptor jaringan individual dalam tim. Misalnya, ekstensi penerusan dapat mendukung solusi failover untuk penyeimbangan beban (LBFO) di dalam tim dengan meneruskan paket keluar ke setiap adaptor. Ekstensi penerusan yang mengelola sebuah tim switch yang dapat diperluas dikenal sebagai penyedia pengelompokan. Untuk informasi selengkapnya tentang penyedia teaming, lihat Teaming Provider Extensions.
Gambar berikut menunjukkan contoh tim sakelar yang dapat diperpanjang untuk NDIS 6.40 (Windows Server 2012 R2) dan versi yang lebih baru.
Gambar berikut menunjukkan contoh kelompok switch yang dapat diperluas untuk NDIS 6.30 (Windows Server 2012).
Nota Dalam antarmuka sakelar yang dapat diperluas Hyper-V, 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 dengan menggunakan permintaan set OID OID_SWITCH_NIC_REQUEST.
Permintaan OID ke adaptor fisik yang mendasar dikeluarkan oleh pihak-pihak berikut:
Antarmuka sakelar yang dapat diperluas.
Permintaan OID, seperti permintaan untuk offload perangkat keras, dikeluarkan oleh protokol atau driver filter yang lebih tinggi yang berjalan dalam salah satu dari yang 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. Saat 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 memaparkan kemampuan umum dari seluruh tim switch yang dapat diperluas. Namun, ekstensi penerusan dapat mengeluarkan permintaan OID untuk melakukan kueri atau mengatur kemampuan setiap adaptor dalam tim. Kemudian, ekstensi penerusan dapat mengeluarkan indikasi status NDIS dari adaptor jaringan eksternal untuk memberi tahu driver di lapisan atas 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.
Nota Dimulai dengan Windows Server 2012, hanya permintaan offload OID 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 membuat permintaan OID yang dienkapsulasi 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 penyerahan yang juga dikembangkan oleh IHV untuk mengaktifkan atau menonaktifkan atribut khusus pada adaptor fisik individu dalam tim.
Selain itu, ekstensi penerusan dapat menginisiasi permintaan OID offload perangkat keras yang dienkapsulasi untuk mengalokasikan sumber daya bagi partisi turunan Hyper-V yang ditentukan. Misalnya, ekstensi penerusan dapat memulai permintaan OID yang dienkapsulasi OID_RECEIVE_FILTER_ALLOCATE_QUEUE guna mengalokasikan VMQ untuk partisi anak tertentu. Dalam hal ini, ekstensi mengemas permintaan yang berasal dari port saklar yang dapat diekstensi dan koneksi adaptor jaringan yang terkait dengan partisi.
Nota Ekstensi penerusan hanya dapat memulai permintaan OID offload perangkat keras yang dienkapsulasi sendiri jika memfilter permintaan OID yang sama yang dikeluarkan oleh driver lapisan atas. Dalam hal ini, ekstensi tidak boleh meneruskan permintaan OID asli. Sebaliknya, 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 memulai permintaannya sendiri untuk kueri OID yang telah dienkapsulasi dan meneruskannya ke adaptor jaringan fisik dasar. 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.
Nota Hanya ekstensi penerusan yang dapat memulai permintaan set OID yang terenkapsulasi ke adaptor fisik yang berada di bawahnya.
Ekstensi penerusan harus mengikuti langkah-langkah ini saat meneruskan, mengalihkan, atau memulai permintaan OID yang dienkapsulasi untuk adaptor fisik dasar.
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.
Ekstensi mengatur anggota struktur NDIS_SWITCH_NIC_OID_REQUEST yang dialokasikan ekstensi ke nilai berikut:
Anggota DestinationPortId harus diatur pada pengidentifikasi port sakelar yang dapat diperluas tempat adaptor jaringan eksternal terhubung.
Anggota DestinationNicIndex harus diatur ke nilai indeks bukan nol dari adaptor jaringan fisik yang mendasar.
Untuk informasi selengkapnya tentang nilai-nilai indeks ini, lihat Indeks Adaptor Jaringan.
Jika ekstensi penerusan mengajukan permintaan OID offload perangkat keras untuk partisi anak Hyper-V, elemen SourcePortId harus disetel ke pengidentifikasi port yang digunakan oleh partisi. Selain itu, anggota SourceNicIndex harus disetel 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 disetel menjadi nol.
Jika ekstensi penerusan meneruskan atau mengalihkan permintaan offload OID perangkat keras, ekstensi ini harus mempertahankan nilai anggota SourcePortId dan SourceNicIndex yang ditetapkan oleh antarmuka sakelar yang dapat diperluas.
Anggota OidRequest harus diset ke pointer pada struktur NDIS_OID_REQUEST yang diinisialisasi untuk permintaan OID yang dienkapsulasi. Ekstensi penerusan mengalokasikan dan menginisialisasi struktur ini atau menggunakan salinan struktur yang telah diklon.
Ekstensi mengatur 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 .
Ekstensi memanggil ReferenceSwitchNic untuk menaikkan 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.
Saat 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 .
Nota Jika ReferenceSwitchNic tidak mengembalikan NDIS_STATUS_SUCCESS, permintaan OID tidak dapat diteruskan ke adaptor jaringan fisik tujuan.
Jika ekstensi penerusan memulai permintaan OID offload perangkat keras untuk partisi turunan Hyper-V, ekstensi ini juga akan memanggil ReferenceSwitchNic untuk menaikkan penghitung referensi pada indeks dari koneksi adaptor jaringan sumber yang terkait dengan partisi tersebut. Ini menjamin bahwa antarmuka sakelar yang dapat diperluas tidak akan menghapus koneksi adaptor jaringan fisik sementara penghitung referensinya bukan nol.
Saat 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 .
Nota Jika ReferenceSwitchNic tidak mengembalikan NDIS_STATUS_SUCCESS, permintaan OID tidak dapat diteruskan ke adaptor jaringan fisik tujuan.
Ekstensi memanggil NdisFOidRequest untuk meneruskan permintaan OID yang dienkapsulasi ke port sakelar yang dapat diperluas tujuan dan adaptor jaringan yang ditentukan.
Nota 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.
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 penerusan 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 bagaimana ekstensi mengeluarkan permintaan OID, lihat Membuat Permintaan OID dari Driver Filter NDIS.
Untuk informasi selengkapnya tentang driver MUX, lihat NDIS MUX Intermediate Drivers.