管理埠原則
Hyper-V 可延伸交換器的篩選和轉送延伸模組可以使用標準和自訂埠屬性來配置。 部署後,這些擴充功能會在篩選在可擴展交換器輸入數據路徑上取得的封包時,強制執行政策。 如需這些原則的詳細資訊,請參閱 埠原則。
Hyper-V 可延伸交換器介面會使用下列物件標識碼 (OID) 來布建篩選和轉送延伸模組,其中包含標準和自定義埠原則的屬性:
OID_SWITCH_PORT_PROPERTY_ADD
此 OID 集請求是由可延伸交換器的協議邊緣發出,以通知底層延伸模組在 WMI 管理層新增屬性。
NDIS_OID_REQUEST 結構的 InformationBuffer 包含 NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 結構的指標。
Note 自定義埠屬性由 NDIS_SWITCH_PORT_PROPERTY_TYPE 列舉值 NdisSwitchPortPropertyTypeCustom所指定。 標準埠屬性 NDIS_SWITCH_PORT_PROPERTY_TYPE 是由 NdisSwitchPortPropertyTypeSecurity、NdisSwitchPortPropertyTypeVlan和 NdisSwitchPortPropertyTypeProfile的列舉值來指定。
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 方法要求,以查詢可延伸交換器的基礎迷你埠邊緣,以瞭解目前針對可延伸交換器上指定埠設定的屬性。
InformationBuffer 包含一個指向緩衝區的指標,位於 NDIS_OID_REQUEST 結構中。 此緩衝區包含下列資料:
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。 標準埠屬性具有其他屬性類型值。 例如,標準 VLAN 埠原則的屬性值為 NdisSwitchPortPropertyTypeVlan。
屬性識別碼 成員。 這個成員會指定自定義埠屬性的專屬 GUID 值。 這個 GUID 值是由獨立軟體廠商 (ISV) 所建立,後者也會定義自定義可延伸交換器屬性的格式。
注意 擴充套件必須忽略此成員,以符合標準埠政策的要求。
如果延伸模組先前使用符合 NDIS_SWITCH_PROPERTY_PARAMETERS 結構的下列成員的埠屬性進行配置,則必須處理 OID_SWITCH_PORT_PROPERTY_UPDATE 設定要求:
PropertyType 成員。
PropertyId 成員。
注意 擴充套件必須在標準埠政策中忽略此成員。
PropertyVersion 成員。 這個成員指定擴充功能所使用的埠屬性版本。
PropertyInstanceId 成員。 這個成員指定擴充功能布建時使用的埠屬性實例。
篩選或轉送延伸模組可以否決其所管理之埠原則的新增或更新。 擴充功能會藉由將 OID 要求設定為 STATUS_DATA_NOT_ACCEPTED 來完成這項工作。
注意 擷取擴充功能不得否決新增或更新埠原則。 相反地,它必須將 OID 要求轉送至可延伸的交換器控制路徑。
轉送延伸功能可能會使不支援的標準埠屬性的 OID 要求失敗,或者如果該屬性與其自身的政策配置衝突的話。 在此情況下,擴充功能必須完成 OID 要求,並傳回適當的 NDIS 狀態代碼來報告失敗。
如果擴充功能成功處理標準埠原則的 OID 設定請求,則它不能完成 OID 請求,並且必須將它轉送至可延伸的交換器控制路徑。
如果擷取或篩選延伸模組成功處理自定義埠原則的 OID 集合要求,則它不能完成 OID 要求,而且必須將它轉送至可延伸的交換器控制路徑。
如果轉送延伸模組成功處理自定義埠原則的 OID 集合要求,則必須完成 OID 要求,並傳回適當的 NDIS_STATUS_Xxx 值。
如果擴充功能未完成 OID 集合要求,則必須呼叫 NdisFOidRequest,將 OID 要求轉送至可延伸交換器驅動程式堆疊。 在此情況下,延伸模組應該監視 OID 的完成狀態,以偵測基礎延伸模組是否失敗 OID 要求。