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 de VF. As operações de leitura de 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çãoNdisMReadConfigBlock 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 de 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 independente de hardware) e é usado apenas pelos drivers de miniporto PF e VF.

[out] Buffer

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

[in] Length

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

Retornar valor

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.

Comentários

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

Interfacing to a Virtual Bus Driver

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

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

Requisitos

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

Confira também

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock