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