Função NdisMSetVirtualFunctionBusData (ndis.h)

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

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

Sintaxe

ULONG NdisMSetVirtualFunctionBusData(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] 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 no qual os dados são gravados em seu espaço de configuração de PCI.

[in] Buffer

Um ponteiro para um buffer que contém os dados a serem gravados no espaço de configuração de PCI.

[in] Offset

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

[in] Length

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

Retornar valor

NdisMSetVirtualFunctionBusData retorna o número de bytes gravados no espaço de configuração PCI. Se a operação de gravação falhar, NdisMSetVirtualFunctionBusData retornará zero.

Comentários

O driver de miniporto PF normalmente chama NdisMSetVirtualFunctionBusData quando lida com uma solicitação de método OID de OID_SRIOV_WRITE_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 a comunicação backchannel dentro da interface sr-IOV (virtualização de E/S de 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 de 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 miniporto não deverá chamar NdisMSetVirtualFunctionBusData. Em vez disso, o driver deve fazer interface com o VBD por meio de um canal de comunicação privado e solicitar que o VBD chame SetVirtualFunctionData. Essa função é exposta da interface GUID_PCI_VIRTUALIZATION_INTERFACE que é 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

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_WRITE_VF_CONFIG_SPACE

SetVirtualFunctionData