Partilhar via


OID_SRIOV_WRITE_VF_CONFIG_BLOCK

Um driver sobreposto emite uma solicitação de conjunto de identificador de objeto (OID) de OID_SRIOV_WRITE_VF_CONFIG_BLOCK para gravar dados em um bloco de configuração PCI Express (PCIe) Virtual Function (VF).

Drivers sobrepostos emitem essa solicitação de conjunto OID para o driver de miniporta para a função física PCIe (PF) do adaptador de rede. Essa solicitação de método OID é necessária para drivers de miniporta PF que suportam a interface de virtualização de E/S de raiz única (SR-IOV).

O InformationBuffer membro 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_WRITE_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 gravados no bloco de configuração VF.

  • Espaço de buffer adicional para os dados a serem gravados no bloco de configuração VF especificado.

Comentários

Um bloco de configuração VF é usado para comunicação backchannel entre os drivers de miniporta PF e VF. O IHV pode definir um ou mais blocos de configuração VF para os drivers de miniporta. Cada bloco de configuração VF tem um formato, comprimento e ID de bloco definidos por IHV.

Nota Os dados de cada bloco de configuração VF são usados apenas pelos drivers de miniporta PF e VF.

Antes de emitir a solicitação de conjunto OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK, o driver sobrejacente deve definir os membros de NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS estrutura da seguinte maneira:

  • Defina o membro VFId para o identificador do VF para o qual as informações devem ser gravadas.

  • Defina o membro BlockId para o identificador do bloco de configuração a partir do qual as informações devem ser gravadas.

  • Defina o membro Length para o número de bytes a serem gravados no bloco de configuração VF.

  • Defina o membro BufferOffset para o deslocamento dentro do buffer (referenciado por membro do InformationBuffer) que contém os dados a serem gravados a partir do bloco de configuração VF especificado. Esse deslocamento é especificado em unidades de bytes desde o início da estrutura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS.

Quando ele lida com a solicitação de conjunto OID de OID_SRIOV_WRITE_VF_CONFIG_BLOCK, o driver de miniporta PF deve seguir estas diretrizes:

  • O driver de miniporta PF deve verificar se o VF, especificado pelo VFId membro da estrutura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS, tem recursos que foram alocados anteriormente. O driver de miniporta PF aloca recursos para um VF durante uma solicitação de método OID de OID_NIC_SWITCH_ALLOCATE_VF. Se os recursos para o VF especificado não foram alocados, o driver deve falhar a solicitação OID.

  • O driver de miniporta PF deve verificar se o BlockId membro da estrutura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS especifica um bloco de configuração VF válido. Se não, o driver deve falhar a solicitação OID.

Para obter mais informações sobre a comunicação backchannel dentro da interface de virtualização de E/S de raiz única (SR-IOV), consulte SR-IOVde comunicação de backchannel PF/VF.

Códigos de status de retorno

O driver de miniporta retorna um dos seguintes códigos de status para a solicitação de conjunto OID de OID_SRIOV_WRITE_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 miniporta não suporta a interface de virtualização de E/S de raiz única (SR-IOV) ou não está habilitado para usar a interface.

NDIS_STATUS_INVALID_PARAMETER

Um ou mais dos membros da estrutura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS têm valores inválidos.

NDIS_STATUS_INVALID_LENGTH

O buffer de informações era muito curto. O NDIS define os DADOS. SET_INFORMATION. BytesNeeded membro na estrutura NDIS_OID_REQUEST para o tamanho mínimo de buffer necessário.

NDIS_STATUS_FAILURE

O pedido foi rejeitado por outros motivos.

Requerimentos

Versão

Suportado no NDIS 6.30 e posterior.

Cabeçalho

Ntddndis.h (inclui Ndis.h)

Ver também


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE