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