OID_SRIOV_READ_VF_CONFIG_BLOCK
Um driver sobreposto emite uma solicitação de método OID (identificador de objeto) de OID_SRIOV_READ_VF_CONFIG_BLOCK para ler dados de um bloco de configuração de função virtual (VF) PCI Express (PCIe) especificado.
Drivers sobrepostos emitem essa solicitação de método OID para o driver de miniporto para PF (Função Física PCIe) do adaptador de rede. Essa solicitação de método OID é necessária para drivers de miniporto PF que dão suporte à interface sr-IOV (virtualização de E/S) raiz única.
O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para um buffer alocado pelo chamador. Esse buffer é formatado para conter o seguinte:
Uma estrutura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS que contém o deslocamento, em unidades de bytes, desde o início dessa estrutura até um local dentro do buffer que contém os dados lidos do bloco de configuração do VF.
Espaço de buffer adicional para os dados a serem lidos do bloco de configuração de VF especificado.
Comentários
Um bloco de configuração de VF é usado para comunicação backchannel entre os drivers de miniporto PF e VF. O IHV pode definir um ou mais blocos de configuração de VF para os drivers de miniport. Cada bloco de configuração do VF tem um formato, comprimento e ID de bloco definidos por IHV.
Nota Os dados de cada bloco de configuração de VF são usados apenas pelos drivers de miniporto PF e VF.
Antes de emitir a solicitação de método OID de OID_SRIOV_READ_VF_CONFIG_BLOCK, o driver sobreposto deve definir os membros da estrutura de NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS da seguinte maneira:
Defina o membro VFId como o identificador do VF do qual as informações devem ser lidas.
Defina o membro BlockId como o identificador do bloco de configuração do VF do qual as informações devem ser lidas.
Defina o membro Length como o número de bytes a serem lidos do bloco de configuração.
Defina o membro BufferOffset como o deslocamento dentro do buffer (referenciado pelo membro InformationBuffer ) que conterá os dados lidos do bloco de configuração de VF especificado. Esse deslocamento é especificado em unidades de bytes desde o início da estrutura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS .
Quando lida com a solicitação de método OID de OID_SRIOV_READ_VF_CONFIG_BLOCK, o driver de miniporto PF deve seguir estas diretrizes:
O driver de miniporto PF deve verificar se o VF, especificado pelo membro VFId da estrutura de NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS , tem recursos que foram alocados anteriormente. O driver de miniporto PF aloca recursos para um VF durante uma solicitação de método OID de OID_NIC_SWITCH_ALLOCATE_VF. Se os recursos do VF especificado não tiverem sido alocados, o driver deverá falhar na solicitação OID.
O driver de miniporto PF deve verificar se o membro BlockId da estrutura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS especifica um bloco de configuração VF válido. Caso contrário, o driver deve falhar na solicitação de OID.
Para obter mais informações sobre a comunicação backchannel dentro da interface sr-IOV (virtualização de E/S) raiz única, consulte Comunicação backchannel sr-IOV PF/VF.
Retornar códigos de status
O driver de miniporto PF retorna um dos seguintes códigos de status para a solicitação de método de OID_SRIOV_READ_VF_CONFIG_BLOCK.
Código de status | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
A solicitação OID foi concluída com êxito. |
NDIS_STATUS_NOT_SUPPORTED |
O driver de miniporte não dá suporte à interface sr-IOV (virtualização de E/S raiz) ou não está habilitado para usar a interface. |
NDIS_STATUS_INVALID_PARAMETER |
Um ou mais dos membros da estrutura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS têm valores inválidos. |
NDIS_STATUS_INVALID_LENGTH |
O buffer de informações era muito curto. O driver de miniporte deve definir os DADOS. METHOD_INFORMATION. Membro BytesNeeded na estrutura NDIS_OID_REQUEST para o tamanho mínimo do buffer necessário. |
NDIS_STATUS_FAILURE |
A solicitação falhou por outros motivos. |
Requisitos
Versão |
Com suporte no NDIS 6.30 e posterior. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |