Compartilhar via


Função NdisMReadConfigBlock (ndis.h)

Um driver de miniporto para uma VF (função virtual) PCI Express (PCIe) chama a função NdisMReadConfigBlock para ler dados de um bloco de configuração do VF. As operações de leitura para um bloco de configuração de VF são tratadas pelo driver de miniporto da PF (Função Física PCIe) do adaptador de rede.

Observação NdisMReadConfigBlock só deve ser chamado pelo driver de miniporto VF.
 

Sintaxe

NDIS_STATUS NdisMReadConfigBlock(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [in]  ULONG       BlockId,
  [out] PVOID       Buffer,
  [in]  ULONG       Length
);

Parâmetros

[in] NdisMiniportHandle

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

[in] BlockId

Um valor ULONG que especifica o identificador do bloco de configuração do VF a ser lido. Esse identificador é proprietário do IHV (fornecedor de hardware independente) e é usado apenas pelos drivers de miniporto PF e VF.

[out] Buffer

Um ponteiro para um buffer alocado por chamador que conterá os dados de configuração solicitados.

[in] Length

O número de bytes a serem lidos do bloco de configuração do VF.

Valor de retorno

NdisMReadConfigBlock pode retornar um dos seguintes valores de status:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
A operação de consulta foi concluída com êxito.
NDIS_STATUS_FAILURE
Falha na operação de consulta.

Observações

O driver de miniporto VF chama NdisMReadConfigBlock para iniciar uma solicitação de leitura backchannel de dados de configuração de VF pelo driver de miniporto PF. Depois de notificado dessa solicitação, o driver PF retorna os dados do bloco de configuração de VF especificado.

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.
 
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).

interfiguração para um motorista de ônibus virtual

Se um fornecedor de hardware independente (IHV) fornecer um VBD (driver de ônibus virtual) como parte de seu pacote de driver SR-IOV , seu driver de miniporto não deverá chamar NdisMReadConfigBlock. Em vez disso, o driver deve fazer interface com o VBD por meio de um canal de comunicação privado e solicitar que a chamada do VBD ReadVfConfigBlock. Essa função é exposta a partir da interface GUID_VPCI_INTERFACE_STANDARD que é compatível com o driver de ônibus VPCI (PCI virtual) subjacente.

O VBD executado em um sistema operacional convidado de partição Hyper-V filho pode consultar a interface GUID_VPCI_INTERFACE_STANDARD emitindo uma solicitação IRP_MN_QUERY_INTERFACE para seu objeto de dispositivo físico (PDO) no barramento VPCI. Essa solicitação deve ser feita de IRQL = PASSIVE_LEVEL. Nesta solicitação, o driver deve definir o parâmetro InterfaceType como GUID_VPCI_INTERFACE_STANDARD.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.30 e posterior.
da Plataforma de Destino Universal
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL <= APC_LEVEL

Consulte também

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock