Gestione dei criteri di porta
È possibile effettuare il provisioning delle estensioni di filtro e inoltro di Hyper-V con le proprietà delle porte standard e personalizzate. Dopo il provisioning, queste estensioni applicano i criteri quando filtrano i pacchetti ottenuti nel percorso dati di ingresso estendibile. Per altre informazioni su questi criteri, vedere Criteri di porta.
L'interfaccia commutatore estendibile Hyper-V usa gli identificatori di oggetto seguenti (OID) per effettuare il provisioning di estensioni di filtro e inoltro con le proprietà dei criteri di porta standard e personalizzati:
OID_SWITCH_PORT_PROPERTY_ADD
Questa richiesta di set OID viene emessa dal bordo del protocollo del commutatore estendibile per notificare le estensioni sottostanti dell'aggiunta di una proprietà al livello di gestione WMI. InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.
Nota Le proprietà delle porte personalizzate vengono specificate da un valore di enumerazione NDIS_SWITCH_PORT_PROPERTY_TYPEdi NdisSwitchPortPropertyTypeCustom. Le proprietà della porta Standard vengono specificate da un valore di enumerazione NDIS_SWITCH_PORT_PROPERTY_TYPE di NdisSwitchPortPropertyTypeSecurity, NdisSwitchPortPropertyTypeVlan e NdisSwitchPortPropertyTypeProfile.
OID_SWITCH_PORT_PROPERTY_UPDATE
Questa richiesta di set OID viene emessa dal bordo del protocollo del commutatore estendibile per informare le estensioni sottostanti dell'aggiornamento di una proprietà nel livello di gestione WMI. InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.
OID_SWITCH_PORT_PROPERTY_DELETE
Questa richiesta di set OID viene emessa dal bordo del protocollo del commutatore estendibile per informare le estensioni sottostanti dell'eliminazione di una proprietà nel livello di gestione WMI. InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS.
OID_SWITCH_PORT_PROPERTY_ENUM
Questa richiesta di metodo OID viene inviata dall'estensione per eseguire una query sul bordo miniport sottostante dell'commutatore estendibile sulle proprietà attualmente configurate per una porta specificata nel commutatore estendibile. InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a un buffer. Questo buffer contiene i dati seguenti:
Struttura NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS che specifica i parametri per l'enumerazione dei criteri di una porta specificata.
Matrice di strutture NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO . Ognuna di queste strutture contiene informazioni sulle proprietà di un criterio di porta estendibile.
Nota Se il membro NumProperties della struttura NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS è impostato su zero, non vengono restituite strutture NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO .
Nota L'estensione non deve originare richieste di set OID di OID_SWITCH_PORT_PROPERTY_ADD. OID_SWITCH_PORT_PROPERTY_UPDATE o OID_SWITCH_PORT_PROPERTY_DELETE.
L'estensione del commutatore estendibile deve seguire queste linee guida quando gestisce una richiesta di set OID di OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATE o OID_SWITCH_PORT_PROPERTY_DELETE:
L'estensione non deve modificare la struttura NDIS_SWITCH_PORT_PROPERTY_PARAMETERS o NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS associata alla richiesta OID.
L'estensione deve gestire queste richieste OID se l'estensione gestisce la proprietà. A seconda della richiesta OID, l'estensione deve controllare i membri seguenti delle strutture NDIS_SWITCH_PORT_PROPERTY_PARAMETERS o NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS per determinare se gestisce la proprietà della porta:
Membro PropertyType . Questo membro specifica il tipo della proprietà porta. Le proprietà delle porte personalizzate hanno un valore membro PropertyType di NdisSwitchPortPropertyTypeCustom. Le proprietà della porta standard hanno altri valori del tipo di proprietà. Ad esempio, i criteri di porta VLAN standard hanno un valore del tipo di proprietà NdisSwitchPortPropertyTypeVlan.
Membro PropertyId . Questo membro specifica un valore GUID proprietario per una proprietà porta personalizzata. Questo valore GUID viene creato dal fornitore di software indipendente (ISV) che definisce anche il formato della proprietà di commutatore estendibile personalizzata.
Nota L'estensione deve ignorare questo membro per i criteri di porta standard.
L'estensione deve gestire una richiesta impostata OID_SWITCH_PORT_PROPERTY_UPDATE se l'estensione è stata precedentemente eseguita con una proprietà porta corrispondente ai membri seguenti della struttura NDIS_SWITCH_PROPERTY_PARAMETERS:
Membro PropertyType .
Membro PropertyId .
Nota L'estensione deve ignorare questo membro per i criteri di porta standard.
Membro PropertyVersion . Questo membro specifica la versione della proprietà porta con cui è stato effettuato il provisioning dell'estensione.
Membro PropertyInstanceId . Questo membro specifica l'istanza della proprietà porta con cui è stato effettuato il provisioning dell'estensione.
L'estensione di filtro o inoltro può veto l'aggiunta o l'aggiornamento di un criterio di porta gestito. L'estensione esegue questa operazione completando la richiesta OID con STATUS_DATA_NOT_ACCEPTED.
Nota L'acquisizione di estensioni non deve avere il veto dell'aggiunta o dell'aggiornamento di un criterio di porta. Invece, deve inoltrare la richiesta OID verso il basso il percorso del controllo commutatore estendibile.
Un'estensione di inoltro può non riuscire la richiesta OID per le proprietà della porta standard che non supporta o se la proprietà è in conflitto con la propria configurazione dei criteri. In questo caso, l'estensione deve completare la richiesta OID e restituire il codice di stato NDIS appropriato per segnalare l'errore.
Se l'estensione gestisce correttamente la richiesta del set OID per un criterio di porta standard, non deve completare la richiesta OID e deve inoltrarla verso il basso il percorso di controllo del commutatore estendibile.
Se l'estensione di acquisizione o filtro gestisce correttamente la richiesta del set OID per un criterio di porta personalizzata, non deve completare la richiesta OID e deve inoltrarla verso il basso il percorso di controllo commutatore estendibile.
Se l'estensione di inoltro gestisce correttamente la richiesta del set OID per un criterio di porta personalizzato, deve completare la richiesta OID e restituire il valore NDIS_STATUS_Xxx appropriato.
Se l'estensione non completa la richiesta del set OID, deve chiamare NdisFOidRequest per inoltrare la richiesta OID nello stack di driver del commutatore estendibile. In questo caso, le estensioni devono monitorare lo stato di completamento dell'OID per rilevare se un'estensione sottostante ha avuto esito negativo nella richiesta OID.