Partilhar via


Atualizando arquivos de driver

Os drivers são atualizados sempre que ocorre uma das seguintes situações:

  • O Assistente de Atualização de Hardware é executado a partir do Gerenciador de Dispositivos.

    Observação A partir do Windows Vista, este assistente é agora denominado Assistente de Atualização de Software de Controlador.

  • O Windows Update é executado.

  • O software de instalação de um dispositivo é executado.

  • A partir do Windows Vista, você pode executar a ferramenta PnPUtil a partir de um prompt de comando elevado para instalar ou atualizar o pacote de driver para o dispositivo.

Use as diretrizes a seguir ao escrever software de instalação e arquivos INF que atualizam drivers existentes.

  • O software de instalação pode chamar UpdateDriverForPlugAndPlayDevices, fornecendo um arquivo INF e um ID de hardware, para atualizar drivers para dispositivos que correspondem ao ID de hardware.

    A partir do Windows Vista, o software de instalação também pode chamar uma das seguintes opções para atualizar drivers:

    • DiInstallDriver, que pré-instala um driver e, em seguida, instala o driver em dispositivos presentes no sistema que o driver suporta.
    • DiInstallDevice, que instala um driver especificado do armazenamento de driver em um dispositivo especificado que está presente no sistema.

    Para obter mais informações, consulte Escrevendo um aplicativo de instalação de dispositivo.

  • Ao atualizar um driver, os instaladores de classe e coinstaladores não devem fornecer páginas de conclusão de instalação em resposta a DIF_NEWDEVICEWIZARD_FINISHINSTALL a menos que seja absolutamente necessário. Se possível, obtenha informações de conclusão de instalação das configurações da instalação anterior.

  • Na medida do possível, os instaladores e coinstaladores de classe devem evitar basear o comportamento no facto de estarem a fornecer uma instalação inicial ou de estarem a atualizar controladores para um dispositivo já instalado.

  • A partir do Windows XP, os valores do Registro CoInstallers32 e EnumPropPages32 são excluídos antes da entrega do DIF_REGISTER_COINSTALLERS. Os arquivos INF para versões anteriores do sistema operacional devem excluir explicitamente esses valores ou executar uma operação de modificação não anexada neles.

  • A partir do Windows XP, os valores do Registro UpperFilters e LowerFilters são excluídos antes da entrega do DIF_INSTALLDEVICE. Os arquivos INF para versões anteriores do sistema operacional devem excluir explicitamente esses valores ou executar uma operação de modificação não anexada neles.

  • Não usediretivas INF DelFiles ou diretivas INF RenFiles ao atualizar drivers. O Windows não pode garantir que um determinado ficheiro não esteja a ser utilizado por outro dispositivo. (Os instaladores e coinstaladores de classe podem excluir ou renomear arquivos, se puderem determinar de forma confiável que nenhum dispositivo está usando os arquivos.)

  • Use a diretiva INF DelReg para remover entradas de registro antigas específicas do dispositivo de uma instalação anterior do dispositivo, se as entradas não forem mais necessárias. (Não remova entradas do registro global.)

  • Não use a diretiva INF DelService em uma seção INF DDInstall.Services para remover serviços de dispositivo/driver instalados anteriormente do computador de destino. O Windows não pode garantir que um determinado serviço não esteja a ser utilizado por outro dispositivo. (Os instaladores e coinstaladores de classe podem excluir serviços, se puderem determinar de forma confiável que nenhum dispositivo está usando os serviços.)

  • Ao atualizar um instalador de classe, coinstalador de classe ou DLL de serviço, você deve dar à nova versão um novo nome de arquivo.

Para obter mais informações sobre arquivos INF, consulte Criando um arquivo INF e Seções e diretivas de arquivo INF.