Gerenciando políticas de porta
As extensíveis extensíveis de filtragem e encaminhamento de extensões do Hyper-V podem ser provisionadas com as propriedades de porta padrão e personalizadas. Depois de provisionadas, essas extensões impõem as políticas quando filtram pacotes obtidos no caminho de dados de entrada do comutador extensível. Para obter mais informações sobre essas políticas, consulte Políticas de porta.
A interface de comutador extensível do Hyper-V usa os seguintes OIDs (identificadores de objeto) para provisionar extensões de filtragem e encaminhamento com as propriedades das políticas de porta padrão e personalizadas:
OID_SWITCH_PORT_PROPERTY_ADD
Essa solicitação de conjunto de OID é emitida pela borda do protocolo da opção extensível para notificar as extensões subjacentes da adição de uma propriedade na camada de gerenciamento WMI. O InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_SWITCH_PORT_PROPERTY_PARAMETERS .
Nota As propriedades de porta personalizadas são especificadas por um valor de enumeração NDIS_SWITCH_PORT_PROPERTY_TYPE de NdisSwitchPortPropertyTypeCustom. As propriedades de porta padrão são especificadas por um valor de enumeração NDIS_SWITCH_PORT_PROPERTY_TYPE de NdisSwitchPortPropertyTypeSecurity, NdisSwitchPortPropertyTypeVlan e NdisSwitchPortPropertyTypeProfile.
OID_SWITCH_PORT_PROPERTY_UPDATE
Essa solicitação de conjunto de OID é emitida pela borda do protocolo da opção extensível para informar as extensões subjacentes da atualização de uma propriedade na camada de gerenciamento WMI. O InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_SWITCH_PORT_PROPERTY_PARAMETERS .
OID_SWITCH_PORT_PROPERTY_DELETE
Essa solicitação de conjunto de OID é emitida pela borda do protocolo da opção extensível para informar as extensões subjacentes da exclusão de uma propriedade na camada de gerenciamento WMI. O InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS .
OID_SWITCH_PORT_PROPERTY_ENUM
Essa solicitação de método OID é enviada pela extensão para consultar a borda de miniporto subjacente da opção extensível sobre as propriedades atualmente configuradas para uma porta especificada no comutador extensível. O InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para um buffer. Esse buffer contém os seguintes dados:
Uma estrutura NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS que especifica os parâmetros para a enumeração de política de uma porta especificada.
Uma matriz de estruturas NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO . Cada uma dessas estruturas contém informações sobre as propriedades de uma política de porta de comutador extensível.
Nota Se o membro NumProperties da estrutura NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS estiver definido como zero, nenhuma estrutura de NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO será retornada.
Nota A extensão não deve originar solicitações de conjunto de OID de OID_SWITCH_PORT_PROPERTY_ADD. OID_SWITCH_PORT_PROPERTY_UPDATE ou OID_SWITCH_PORT_PROPERTY_DELETE.
A extensão de comutador extensível deve seguir estas diretrizes ao manipular uma solicitação de conjunto OID de OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATE ou OID_SWITCH_PORT_PROPERTY_DELETE:
A extensão não deve modificar a estrutura de NDIS_SWITCH_PORT_PROPERTY_PARAMETERS ou NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS associada à solicitação OID.
A extensão deverá lidar com essas solicitações de OID se a extensão gerenciar a propriedade. Dependendo da solicitação OID, a extensão deve inspecionar os seguintes membros do NDIS_SWITCH_PORT_PROPERTY_PARAMETERS ou NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS estruturas para determinar se ela gerencia a propriedade de porta:
O membro PropertyType . Esse membro especifica o tipo da propriedade de porta. As propriedades de porta personalizadas têm um valor de membro PropertyType de NdisSwitchPortPropertyTypeCustom. As propriedades de porta padrão têm outros valores de tipo de propriedade. Por exemplo, as políticas de porta VLAN padrão têm um valor de tipo de propriedade de NdisSwitchPortPropertyTypeVlan.
O membro PropertyId . Esse membro especifica um valor guid proprietário para uma propriedade de porta personalizada. Esse valor guid é criado pelo ISV (fornecedor independente de software) que também define o formato da propriedade de comutador extensível personalizada.
Nota A extensão deve ignorar esse membro para políticas de porta padrão.
A extensão deverá manipular uma solicitação de conjunto de OID_SWITCH_PORT_PROPERTY_UPDATE se a extensão tiver sido provisionada anteriormente com uma propriedade de porta que corresponda aos seguintes membros da estrutura NDIS_SWITCH_PROPERTY_PARAMETERS :
O membro PropertyType .
O membro PropertyId .
Nota A extensão deve ignorar esse membro para políticas de porta padrão.
O membro PropertyVersion . Esse membro especifica a versão da propriedade de porta com a qual a extensão foi provisionada.
O membro PropertyInstanceId . Esse membro especifica a instância da propriedade de porta com a qual a extensão foi provisionada.
A extensão de filtragem ou encaminhamento pode vetar a adição ou atualização de uma política de porta gerenciada por ela. A extensão faz isso concluindo a solicitação OID com STATUS_DATA_NOT_ACCEPTED.
Nota A captura de extensões não deve vetar a adição ou a atualização de uma política de porta. Em vez disso, ele deve encaminhar a solicitação OID para baixo no caminho de controle de comutador extensível.
Uma extensão de encaminhamento pode falhar na solicitação de OID para propriedades de porta padrão que ela não dá suporte ou se a propriedade está em conflito com sua própria configuração de política. Nesse caso, a extensão deve concluir a solicitação OID e retornar o código de status NDIS apropriado para relatar a falha.
Se a extensão manipular com êxito a solicitação de conjunto de OID para uma política de porta padrão, ela não deverá concluir a solicitação OID e deve encaminhá-la para baixo no caminho de controle de comutador extensível.
Se a extensão de captura ou filtragem manipular com êxito a solicitação de conjunto de OID para uma política de porta personalizada, ela não deverá concluir a solicitação OID e deve encaminhá-la para baixo no caminho de controle de comutador extensível.
Se a extensão de encaminhamento manipular com êxito a solicitação de conjunto de OID para uma política de porta personalizada, ela deverá concluir a solicitação OID e retornar o valor apropriado NDIS_STATUS_Xxx .
Se a extensão não concluir a solicitação de conjunto de OID, ela deverá chamar NdisFOidRequest para encaminhar a solicitação OID para baixo na pilha de driver de comutador extensível. Nesse caso, as extensões devem monitorar a status de conclusão do OID para detectar se uma extensão subjacente falhou na solicitação OID.