Compartilhar via


MiniportAddDevice Guidelines for PF Miniport Drivers

Este tópico descreve as diretrizes para escrever uma função MiniportAddDevice para o driver de miniporto da PF (Função Física) PCI Express (PCIe). O PF é um componente de um adaptador de rede que dá suporte à SR-IOV (virtualização de E/S de raiz única).

Nota Essas diretrizes se aplicam somente a drivers de miniporta PF. Para obter diretrizes de inicialização para o driver de miniporto de uma função virtual PCIe (VF) do adaptador, consulte Inicializando um driver de miniporto VF.

O Gerenciador de Plug and Play (PnP) chama a função AddDevice do NDIS para criar o FDO (objeto de dispositivo funcional) para o adaptador de rede. Se o driver de miniporto PF registrou um ponto de entrada MiniportAddDevice quando chamou NdisMRegisterMiniportDriver, o NDIS chamará a função MiniportAddDevice do driver.

Quando MiniportAddDevice é chamado, o driver de miniporto PF pode alocar recursos de software adicionais para o SR-IOV e o comutador NIC (cartão de interface de rede). Normalmente, esses são recursos que devem ser alocados antes que o NDIS chame a função MiniportInitializeEx do driver.

O driver pode fazer o seguinte dentro do contexto da chamada para MiniportAddDevice:

  • O driver de miniporto PF pode chamar NdisReadConfiguration para ler as definições de configuração de comutador SR-IOV e NIC do registro. Essas definições de configuração são definidas por meio das palavras-chave SR-IOV padronizadas. Para obter mais informações sobre essas palavras-chave, consulte Palavras-chave INF padronizadas para SR-IOV.

  • Com base nessas definições de configuração, o driver de miniporto PF aloca os recursos de software adicionais para o adaptador de rede SR-IOV.

Nota A alocação real de recursos de hardware e a habilitação de SR-IOV no espaço de configuração PCI só devem ser feitas dentro do contexto da chamada para MiniportInitializeEx. Como o espaço de E/S mapeado na memória (MMIO) do adaptador de rede não é inicializado quando MiniportAddDevice é chamado, o driver de miniporto não deve ler ou gravar no adaptador até que MiniportInitializeEx seja chamado.