Partilhar via


Gerenciando políticas de comutador

As extensíveis extensíveis de filtragem e encaminhamento de extensões do Hyper-V podem ser provisionadas com as propriedades de comutador personalizado. 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 Alternar políticas.

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 de políticas de comutador personalizadas:

OID_SWITCH_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_PROPERTY_PARAMETERS .

Nota As propriedades do comutador personalizado são especificadas por um valor de enumeração NDIS_SWITCH_PROPERTY_TYPE de NdisSwitchPropertyTypeCustom.

OID_SWITCH_PROPERTY_UPDATE
Essa solicitação de conjunto de OID é emitida pela borda do protocolo da opção extensível para notificar 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_PROPERTY_PARAMETERS .

OID_SWITCH_PROPERTY_DELETE
Essa solicitação de conjunto de OID é emitida pela borda do protocolo da opção extensível para notificar 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_PROPERTY_DELETE_PARAMETERS .

OID_SWITCH_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 do comutador atualmente configuradas 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:

Nota A extensão não deve originar solicitações de conjunto de OID de OID_SWITCH_PROPERTY_ADD. OID_SWITCH_PROPERTY_UPDATE ou OID_SWITCH_PROPERTY_DELETE.

A extensão de comutador extensível deve seguir estas diretrizes ao manipular uma solicitação de conjunto OID de OID_SWITCH_PROPERTY_ADD, OID_SWITCH_PROPERTY_UPDATE ou OID_SWITCH_PROPERTY_DELETE:

  • A extensão não deve modificar a estrutura NDIS_SWITCH_PROPERTY_PARAMETERS ou NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS associada à solicitação OID.

  • A extensão deverá lidar com uma solicitação OID_SWITCH_PROPERTY_UPDATE ou OID_SWITCH_PROPERTY_DELETE definida se a extensão tiver sido provisionada anteriormente com uma propriedade switch que corresponda aos seguintes membros da estrutura NDIS_SWITCH_PROPERTY_PARAMETERS ou NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS :

    • O membro PropertyType que especifica o tipo de propriedade switch.

      Nota A partir do NDIS 6.30, somente as propriedades de comutador de NdisSwitchPropertyTypeCustom são especificadas pelas estruturas NDIS_SWITCH_PROPERTY_PARAMETERS ou NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS .

    • O membro PropertyId que especifica um valor guid proprietário que a extensão reconhece. Esse valor guid é criado pelo ISV (fornecedor independente de software) que também define o formato da propriedade de política de comutador extensível personalizada.

      Nota Uma propriedade de política de comutador extensível personalizada está contida em uma estrutura NDIS_SWITCH_PROPERTY_CUSTOM .

  • Se a extensão manipular essas solicitações de conjunto de OID, a extensão deverá atualizar ou excluir a política de comutador que corresponde aos seguintes membros da estrutura NDIS_SWITCH_PROPERTY_PARAMETERS :

    • O membro PropertyVersion que especifica a versão da política de comutador extensível.

    • O membro PropertyInstanceId que especifica a instância da política de comutador extensível.

    Se os valores desses membros não corresponderem a uma propriedade de política de comutador para a qual a extensão foi provisionada anteriormente, a extensão deverá falhar na solicitação de conjunto de OID com NDIS_STATUS_INVALID_PARAMETER. Caso contrário, a extensão deverá concluir a solicitação de conjunto de OID e retornar NDIS_STATUS_SUCCESS.

  • A extensão de filtragem ou encaminhamento pode vetar a adição, exclusão ou atualização de uma política de comutador. 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 comutador. Em vez disso, ele deve encaminhar a solicitação OID 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 comutador 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 comutador 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.