Função NdisMGetVirtualFunctionBusData (ndis.h)

Um driver de miniporto chama a função NdisMGetVirtualFunctionBusData para ler dados do espaço de configuração PCI Express (PCIe) de uma VF (Função Virtual) especificada no adaptador de rede.

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

Sintaxe

ULONG NdisMGetVirtualFunctionBusData(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PVOID                  Buffer,
  [in]  ULONG                  Offset,
  [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] VFId

O identificador do VF do qual os dados do espaço de configuração PCI são retornados.

[out] Buffer

Um ponteiro para um buffer que recebe os dados lidos do espaço de configuração PCI do VF.

[in] Offset

O deslocamento, em unidades de bytes, no espaço de configuração PCI do VF do qual os dados são lidos.

[in] Length

O comprimento, em unidades de bytes, dos dados a serem lidos.

Nota O tamanho do buffer referenciado por Buffer deve ser pelo menos tão grande quanto o valor do parâmetro Length .
 

Retornar valor

NdisMGetVirtualFunctionBusData retorna o número de bytes lidos do espaço de configuração PCI. Se a operação de leitura falhar, NdisMGetVirtualFunctionBusData retornará zero.

Comentários

O driver de miniporto PF normalmente chama NdisMGetVirtualFunctionBusData quando lida com uma solicitação de método OID de OID_SRIOV_READ_VF_CONFIG_SPACE.
No entanto, o driver pode chamar essa função a qualquer momento após a virtualização ter sido habilitada no adaptador de rede por meio de uma chamada para NdisMEnableVirtualization.

Para obter mais informações sobre como consultar o espaço de configuração PCI do VF, consulte Consultando o espaço de configuração PCI para uma função virtual.

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 NdisMGetVirtualFunctionBusData. 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 GetVirtualFunctionData. Essa função é exposta a partir da interface GUID_PCI_VIRTUALIZATION_INTERFACE compatível com o driver de barramento PCI subjacente.

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

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

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE