Partilhar 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 do adaptador de rede que o NDIS passou para o parâmetro MiniportAdapterHandle de MiniportInitializeEx.

[in] VFId

O identificador da VF para a 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.

Valor de retorno

Nenhum

Observações

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 de VF tem um formato definido por IHV, comprimento e ID de bloco.

Observação 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 Hyper-V.
  • O driver PF, que é executado no sistema operacional de gerenciamento.

    Esse sistema operacional é executado na partição pai Hyper-V.

Para lidar com notificações de dados de configuração de VF inválidos, o NDIS e os drivers de miniporto 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.
      Observação 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 de 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 de virtualização de E/S raiz única (SR-IOV), consulte SR-IOVde Comunicação Backchannel PF/VF.

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

Requisitos

Requisito Valor
de cliente com suporte mínimo Nenhum com suporte, com suporte no NDIS 6.30 e posterior.
servidor com suporte mínimo Windows Server 2012
da Plataforma de Destino Universal
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL

Consulte também

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT