管理交換器原則
Hyper-V 可延伸交換器篩選和轉送延伸模組可以使用自訂交換器屬性的屬性來布建。 布建之後,這些延伸模組會在篩選在可延伸交換器輸入資料路徑上取得的封包時,強制執行原則。 如需這些原則的詳細資訊,請參閱 切換原則。
Hyper-V 可延伸交換器介面會使用下列物件識別碼 (OID) ,以自訂交換器原則的屬性布建篩選和轉送延伸模組:
OID_SWITCH_PROPERTY_ADD
此 OID 集合要求是由可延伸交換器的通訊協定邊緣發出,以通知 WMI 管理層上新增屬性的基礎延伸。 NDIS_OID_REQUEST結構的InformationBuffer包含NDIS_SWITCH_PROPERTY_PARAMETERS結構的指標。
注意自訂參數屬性是由NdisSwitchPropertyTypeCustom的NDIS_SWITCH_PROPERTY_TYPE列舉值所指定。
OID_SWITCH_PROPERTY_UPDATE
此 OID 集合要求是由可延伸交換器的通訊協定邊緣發出,以通知 WMI 管理層上屬性更新的基礎延伸。 NDIS_OID_REQUEST結構的InformationBuffer包含NDIS_SWITCH_PROPERTY_PARAMETERS結構的指標。
OID_SWITCH_PROPERTY_DELETE
此 OID 集合要求是由可延伸交換器的通訊協定邊緣發出,以通知 WMI 管理層上刪除屬性的基礎延伸。 NDIS_OID_REQUEST結構的InformationBuffer包含NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS結構的指標。
OID_SWITCH_PROPERTY_ENUM
延伸模組會傳送這個 OID 方法要求,以查詢可延伸交換器上目前設定之交換器屬性的基礎迷你埠邊緣。 NDIS_OID_REQUEST結構的InformationBuffer包含緩衝區的指標。 此緩衝區包含下列資料:
NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS結構,指定參數原則之屬性列舉的參數。
NDIS_SWITCH_PROPERTY_ENUM_INFO結構的陣列。 每個結構都包含參數原則屬性的相關資訊。
注意如果NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS結構的NumProperties成員設定為零,則不會傳回任何NDIS_SWITCH_PROPERTY_ENUM_INFO結構。
注意 延伸模組不得源自 OID_SWITCH_PROPERTY_ADD的 OID 集合要求。 OID_SWITCH_PROPERTY_UPDATE或 OID_SWITCH_PROPERTY_DELETE。
當可延伸交換器擴充功能處理 OID_SWITCH_PROPERTY_ADD、 OID_SWITCH_PROPERTY_UPDATE或 OID_SWITCH_PROPERTY_DELETE的 OID 集合要求時,必須遵循下列指導方針:
延伸模組不得修改與 OID 要求相關聯的 NDIS_SWITCH_PROPERTY_PARAMETERS 或 NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS 結構。
如果延伸模組先前已使用符合下列NDIS_SWITCH_PROPERTY_PARAMETERS或NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS結構成員的 switch 屬性布建擴充功能,則此延伸模組必須處理OID_SWITCH_PROPERTY_UPDATE或OID_SWITCH_PROPERTY_DELETE集要求:
指定 switch 屬性類型的 PropertyType 成員。
注意 從 NDIS 6.30 開始,只有 NdisSwitchPropertyTypeCustom 的 switch 屬性是由 NDIS_SWITCH_PROPERTY_PARAMETERS 或 NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS 結構所指定。
PropertyId成員,指定擴充功能可辨識的專屬 GUID 值。 此 GUID 值是由獨立軟體廠商 (ISV) 所建立,這些廠商也會定義自訂可延伸交換器原則屬性的格式。
注意 自訂可延伸交換器原則屬性包含在 NDIS_SWITCH_PROPERTY_CUSTOM 結構內。
如果擴充功能處理這些 OID 集合要求,擴充功能必須更新或刪除符合 下列 NDIS_SWITCH_PROPERTY_PARAMETERS 結構成員的交換器原則:
PropertyVersion成員,指定可延伸交換器原則的版本。
PropertyInstanceId成員,指定可延伸交換器原則的實例。
如果這些成員的值不符合先前已布建延伸模組的交換器原則屬性,則擴充功能必須讓 OID 設定要求失敗,且NDIS_STATUS_INVALID_PARAMETER。 否則,擴充功能必須完成 OID 集合要求,並傳回NDIS_STATUS_SUCCESS。
篩選或轉送延伸模組可以保留交換器原則的新增、刪除或更新。 此延伸模組會藉由使用 STATUS_DATA_NOT_ACCEPTED 完成 OID 要求來完成此作業。
注意 擷取擴充功能不得已新增或更新交換器原則。 相反地,它必須將 OID 要求轉送至可延伸的交換器控制路徑。
如果擷取或篩選延伸模組成功處理自訂交換器原則的 OID 集合要求,它不得完成 OID 要求,而且必須將它轉送至可延伸的交換器控制路徑。
如果轉送延伸模組已成功處理自訂交換器原則的 OID 集合要求,則必須完成 OID 要求,並傳回適當的 NDIS_STATUS_Xxx 值。
如果擴充功能未完成 OID 集合要求,則必須呼叫 NdisFOidRequest ,將 OID 要求轉送至可延伸交換器驅動程式堆疊。 在此情況下,延伸模組應該監視 OID 的完成狀態,以偵測基礎延伸模組是否失敗 OID 要求。