Partilhar via


Função NdisMGetVirtualFunctionBusData (ndis.h)

Um driver de miniporto chama a função NdisMGetVirtualFunctionBusData para ler dados do espaço de configuração do 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 a função física PCIe do adaptador de rede (PF).
 

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 do 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 de 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 de PCI do VF do qual os dados são lidos.

[in] Length

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

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

Valor de retorno

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

Observações

O driver de miniporto PF normalmente chama NdisMGetVirtualFunctionBusData ao lidar 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 de PCI para uma função virtual.

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 IHV (fornecedor de hardware independente) fornecer um VBD (driver de barramento virtual) como parte de seu pacote de driver SR-IOV , seu driver de miniporto não deverá chamar NdisMGetVirtualFunctionBusData. 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 GetVirtualFunctionData. Essa função é exposta a partir da interface de GUID_PCI_VIRTUALIZATION_INTERFACE que é compatível com o driver de ônibus PCI subjacente.

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

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

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE