SRIOV_GET_VENDOR_AND_DEVICE_IDS função de retorno de chamada (pcivirt.h)
Fornece a ID do Fornecedor e do Dispositivo para uma VF (Função Virtual SR-IOV) PCI Express a ser usada para gerar uma ID de Plug and Play mais genérica para o VF. Essas IDs não podem ser lidas diretamente do espaço de configuração do VF.
Sintaxe
SRIOV_GET_VENDOR_AND_DEVICE_IDS SriovGetVendorAndDeviceIds;
void SriovGetVendorAndDeviceIds(
[in] PVOID Context,
[in] USHORT VfIndex,
[out] PUSHORT VendorId,
[out] PUSHORT DeviceId
)
{...}
Parâmetros
[in] Context
Um ponteiro para um contexto definido pelo driver.
[in] VfIndex
Um índice baseado em zero do VF ao qual essa operação de gravação se aplica.
[out] VendorId
Um ponteiro para uma variável USHORT preenchida com a ID do fornecedor da VF.
[out] DeviceId
Um ponteiro para uma variável USHORT preenchida com a ID do dispositivo da VF.
Retornar valor
Nenhum
Comentários
Essa função de retorno de chamada é implementada pelo driver de função física (PF). Ele é invocado quando o sistema deseja recuperar o fornecedor e os identificadores de dispositivo do VF especificado.
A Especificação PCI Express SR-IOV exige que todas as VFs tenham as mesmas IDs de fornecedor e dispositivo. Esse é um requisito de hardware em conformidade. No entanto, é possível provisionar VFs de modo que suas funcionalidades diferem umas das outras e, muitas vezes, é útil carregar drivers diferentes em hardwares diferentes. Portanto, o Windows permite que o driver PF forneça IDs de Dispositivo e Fornecedor separadas (com códigos de classe diferentes, por meio das interfaces de espaço de configuração), de modo que cada VF possa aparecer com as IDs de Plug and Play mais apropriadas para seu uso.
O driver PF registra sua implementação definindo o membro GetVendorAndDevice do SRIOV_DEVICE_INTERFACE_STANDARD, configurando uma estrutura WDF_QUERY_INTERFACE_CONFIG e chamando WdfDeviceAddQueryInterface.
Aqui está um exemplo de implementação dessa função de retorno de chamada.
Virtualization_GetVendorAndDevice (
_In_ PVOID Context,
_In_ USHORT VfIndex,
_Out_ PUSHORT VendorId,
_Out_ PUSHORT DeviceId
)
{
PDEVICE_CONTEXT deviceContext;
UNREFERENCED_PARAMETER(VfIndex);
PAGED_CODE();
deviceContext = (PDEVICE_CONTEXT)Context;
*VendorId = deviceContext->VendorId;
*DeviceId = deviceContext->DeviceId;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 |
Servidor mínimo com suporte | Windows Server 2016 |
Plataforma de Destino | Windows |
Cabeçalho | pcivirt.h |
IRQL | PASSIVE_LEVEL |