Mengelola Kebijakan Port
Ekstensi pemfilteran dan penerusan sakelar yang dapat diperluas Hyper-V dapat disediakan dengan properti properti port standar dan kustom. Setelah disediakan, ekstensi ini memberlakukan kebijakan ketika mereka memfilter paket yang diperoleh pada jalur data ingress switch yang dapat diperluas. Untuk informasi selengkapnya tentang kebijakan ini, lihat Kebijakan Port.
Antarmuka sakelar yang dapat diperluas Hyper-V menggunakan pengidentifikasi objek (OID) berikut untuk menyediakan ekstensi pemfilteran dan penerusan dengan properti kebijakan port standar dan kustom:
OID_SWITCH_PORT_PROPERTY_ADD
Permintaan set OID ini dikeluarkan oleh tepi protokol sakelar yang dapat diperluas untuk memberi tahu ekstensi yang mendasar tentang penambahan properti di lapisan manajemen WMI. InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke struktur NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.
Catatan Properti port kustom ditentukan oleh nilai enumerasi NDIS_SWITCH_PORT_PROPERTY_TYPENdisSwitchPortPropertyTypeCustom. Properti port standar ditentukan oleh nilai enumerasi NDIS_SWITCH_PORT_PROPERTY_TYPENdisSwitchPortPropertyTypeSecurity, NdisSwitchPortPropertyTypeVlan, dan NdisSwitchPortPropertyTypeProfile.
OID_SWITCH_PORT_PROPERTY_UPDATE
Permintaan set OID ini dikeluarkan oleh tepi protokol sakelar yang dapat diperluas untuk menginformasikan ekstensi yang mendasar tentang pembaruan properti di lapisan manajemen WMI. InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke struktur NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.
OID_SWITCH_PORT_PROPERTY_DELETE
Permintaan set OID ini dikeluarkan oleh tepi protokol sakelar yang dapat diperluas untuk menginformasikan ekstensi yang mendasar tentang penghapusan properti di lapisan manajemen WMI. InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke struktur NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS.
OID_SWITCH_PORT_PROPERTY_ENUM
Permintaan metode OID ini dikirim oleh ekstensi untuk mengkueri tepi miniport yang mendasar dari sakelar yang dapat diperluas tentang properti yang saat ini dikonfigurasi untuk port tertentu pada sakelar yang dapat diperluas. InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke buffer. Buffer ini berisi data berikut:
Struktur NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS yang menentukan parameter untuk enumerasi kebijakan port tertentu.
Array struktur NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO . Masing-masing struktur ini berisi informasi tentang properti kebijakan port switch yang dapat diperluas.
Catatan Jika anggota NumProperties dari struktur NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS diatur ke nol, tidak ada struktur NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO yang dikembalikan.
Catatan Ekstensi tidak boleh berasal dari permintaan set OID dari OID_SWITCH_PORT_PROPERTY_ADD. OID_SWITCH_PORT_PROPERTY_UPDATE, atau OID_SWITCH_PORT_PROPERTY_DELETE.
Ekstensi sakelar yang dapat diperluas harus mengikuti panduan ini saat menangani permintaan set OID OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATE, atau OID_SWITCH_PORT_PROPERTY_DELETE:
Ekstensi tidak boleh mengubah struktur NDIS_SWITCH_PORT_PROPERTY_PARAMETERS atau NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS yang terkait dengan permintaan OID.
Ekstensi harus menangani permintaan OID ini jika ekstensi mengelola properti . Bergantung pada permintaan OID, ekstensi harus memeriksa anggota struktur NDIS_SWITCH_PORT_PROPERTY_PARAMETERS atau NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS berikut untuk menentukan apakah ia mengelola properti port:
Anggota PropertyType . Anggota ini menentukan jenis properti port. Properti port kustom memiliki nilai anggota PropertyTypedari NdisSwitchPortPropertyTypeCustom. Properti port standar memiliki nilai jenis properti lainnya. Misalnya, kebijakan port VLAN standar memiliki nilai jenis properti NdisSwitchPortPropertyTypeVlan.
Anggota PropertyId . Anggota ini menentukan nilai GUID eksklusif untuk properti port kustom. Nilai GUID ini dibuat oleh vendor perangkat lunak independen (ISV) yang juga mendefinisikan format properti sakelar yang dapat diperluas kustom.
Catatan Ekstensi harus mengabaikan anggota ini untuk kebijakan port standar.
Ekstensi harus menangani permintaan set OID_SWITCH_PORT_PROPERTY_UPDATE jika ekstensi sebelumnya disediakan dengan properti port yang cocok dengan anggota struktur NDIS_SWITCH_PROPERTY_PARAMETERS berikut:
Anggota PropertyType .
Anggota PropertyId .
Catatan Ekstensi harus mengabaikan anggota ini untuk kebijakan port standar.
Anggota PropertyVersion . Anggota ini menentukan versi properti port yang disediakan ekstensi.
Anggota PropertyInstanceId . Anggota ini menentukan instans properti port tempat ekstensi disediakan.
Ekstensi pemfilteran atau penerusan dapat mem-veto penambahan atau pembaruan kebijakan port yang dikelolanya. Ekstensi melakukan ini dengan menyelesaikan permintaan OID dengan STATUS_DATA_NOT_ACCEPTED.
Catatan Menangkap ekstensi tidak boleh mem-veto penambahan atau pembaruan kebijakan port. Sebaliknya, ia harus meneruskan permintaan OID ke jalur kontrol sakelar yang dapat diperluas.
Ekstensi penerusan dapat mengalihkan permintaan OID untuk properti port standar yang tidak didukungnya atau jika properti bertentangan dengan konfigurasi kebijakannya sendiri. Dalam hal ini, ekstensi harus menyelesaikan permintaan OID dan mengembalikan kode status NDIS yang sesuai untuk melaporkan kegagalan.
Jika ekstensi berhasil menangani permintaan set OID untuk kebijakan port standar, ekstensi tidak boleh menyelesaikan permintaan OID dan harus meneruskannya ke jalur kontrol sakelar yang dapat diperluas.
Jika ekstensi penangkapan atau pemfilteran berhasil menangani permintaan set OID untuk kebijakan port kustom, ekstensi tersebut tidak boleh menyelesaikan permintaan OID dan harus meneruskannya ke jalur kontrol sakelar yang dapat diperluas.
Jika ekstensi penerusan berhasil menangani permintaan set OID untuk kebijakan port kustom, ekstensi tersebut harus menyelesaikan permintaan OID dan mengembalikan nilai NDIS_STATUS_Xxx yang sesuai.
Jika ekstensi tidak menyelesaikan permintaan set OID, ekstensi harus memanggil NdisFOidRequest untuk meneruskan permintaan OID ke tumpukan driver sakelar yang dapat diperluas. Dalam hal ini, ekstensi harus memantau status penyelesaian OID untuk mendeteksi apakah ekstensi yang mendasar telah gagal dalam permintaan OID.