Compartilhar via


Função NdisMInvalidateConfigBlock (ndis.h)

Um driver de miniporto chama a função NdisMInvalidateConfigBlock para notificar o NDIS de que os dados de um ou mais blocos de configuração de VF (Função Virtual) foram alterados.

ObservaçãoNdisMInvalidateConfigBlock só deve ser chamado pelo driver de miniporto para PF (Função Física PCIe) do adaptador de rede.
 

Sintaxe

void NdisMInvalidateConfigBlock(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] ULONGLONG              BlockMask
);

Parâmetros

[in] NdisMiniportHandle

O identificador de adaptador de rede que o NDIS passou para o parâmetro MiniportAdapterHandle de MiniportInitializeEx.

[in] VFId

O identificador do VF para o qual o local do dispositivo é retornado.

[in] BlockMask

Um valor ULONGLONG que especifica uma máscara de bits para os primeiros 64 blocos de configuração de VF. Cada bit na máscara de bits corresponde a um bloco de configuração de VF. Se o bit estiver definido como um, os dados associados ao bloco de configuração de VF correspondente serão alterados.

Retornar valor

Nenhum

Comentários

Um bloco de configuração de VF é usado para comunicação backchannel entre os drivers de miniporto PF e VF. O IHV pode definir um ou mais blocos de configuração de VF para o dispositivo. Cada bloco de configuração do VF tem um formato, comprimento e ID de bloco definidos por IHV.

Nota Os dados de cada bloco de configuração de VF são usados apenas pelos drivers de miniporto PF e VF.
 
Os dados de configuração do VF são trocados entre os seguintes drivers:
  • O driver VF, que é executado no sistema operacional convidado. Esse sistema operacional é executado em uma partição filho do Hyper-V.
  • O driver PF, que é executado no sistema operacional de gerenciamento.

    Esse sistema operacional é executado dentro da partição pai do Hyper-V.

Para lidar com notificações de dados de configuração VF inválidos, o NDIS e os drivers de miniporte executam as seguintes etapas:
  1. No sistema operacional convidado, o NDIS emite uma solicitação de controle de E/S de IOCTL_VPCI_INVALIDATE_BLOCK solicitação. Quando esse IOCTL é concluído, o NDIS é notificado de que os dados de configuração do VF foram alterados.
  2. No sistema operacional de gerenciamento, as seguintes etapas ocorrem:
    1. O driver de miniporto PF chama a função NdisMInvalidateConfigBlock para notificar o NDIS de que os dados de configuração do VF foram alterados e não são mais válidos.
    2. O NDIS sinaliza a pilha de virtualização, que é executada no sistema operacional de gerenciamento, sobre a alteração nos dados do bloco de configuração do VF. A pilha de virtualização armazena em cache os dados do parâmetro BlockMask .
      Nota Sempre que o driver de miniporto PF chama NdisMInvalidateConfigBlock, a pilha de virtualização ORs os dados do parâmetro BlockMask com o valor atual em seu cache.
       
    3. A pilha de virtualização notifica o driver VPCI (PCI virtual), que é executado no sistema operacional convidado, sobre a invalidação dos dados de configuração do VF. A pilha de virtualização envia os dados do parâmetro BlockMask armazenados em cache para o driver VPCI.
  3. No sistema operacional convidado, as seguintes etapas ocorrem:
    1. O driver VPCI salva os dados de parâmetro BlockMask armazenados em cache no membro BlockMask da estrutura VPCI_INVALIDATE_BLOCK_OUTPUT associada à solicitação IOCTL_VPCI_INVALIDATE_BLOCK .
    2. O driver VPCI conclui com êxito a solicitação de IOCTL_VPCI_INVALIDATE_BLOCK . Quando isso acontece, o NDIS emite uma solicitação de método OID de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK para o driver de miniporto VF. Uma solicitação NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO é passada na solicitação OID. Essa estrutura contém os dados de parâmetro BlockMask armazenados em cache.

      O NDIS também emite outro IOCTL_VPCI_INVALIDATE_BLOCK solicitação para lidar com notificações sucessivas de alterações nos dados de configuração do VF.

    3. Quando o driver VF manipula a solicitação OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK , ele lê dados dos blocos de configuração de VF especificados.
Para obter mais informações sobre a comunicação backchannel dentro da interface sr-IOV (virtualização de E/S) raiz única, consulte Comunicação backchannel sr-IOV PF/VF.

Para obter mais informações sobre a interface SR-IOV, consulte Visão geral da SR-IOV (Virtualização de E/S raiz única).

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum com suporte, com suporte no NDIS 6.30 e posterior.
Servidor mínimo com suporte Windows Server 2012
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL

Confira também

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT