Partilhar via


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)

Confira também


NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE