Pergunta

Estou a ter alguns problemas ao actualizar controladores UMDF utilizando "devcon" durante um ciclo de código-deploy-debug padrão.O problema é que "devcon update" não realmente actualizar qualquer coisa, a menos que o número da versão ou a data da DLL ficheiro e o ficheiro INF foi alterado a partir do que está armazenado no controlador do sistema pasta de 'cache'.Depois de uma série louca de experiências, descobri que uma maneira de forçar a coisa a usar os ficheiros mais recentes é fazendo o a seguir:

  1. Altere os parâmetros passados ​​para "StampInf.exe" em "makefile.inc", definindo explicitamente uma versão com a opção "-v".
  2. Modificar o ficheiro de script de recurso ("DRIVER_NAME.rc") a definir VER_USE_OTHER_MAJOR_MINOR_VERantes de incluir "ntverp.h"e depois definir explicitamente VER_PRODUCTMAJORVERSION e VER_PRODUCTMINORVERSION.Tu vais note que este sistema não permite nós para mudar a compilação e o números de revisão.No Win7 isto parece estar fixo em 7600 e 16385 em "ntverp.h".Isso é intencional?

Então, eu primeiro modifico "makefile.inc" e defino a opção "-v" para algo como "1.1.7600.16385" a incrementar manualmente a versão secundária para cada compilar e depois modificar o ficheiro RC e actualizar VER_PRODUCTMINORVERSION com o mesmo número.

Alternativamente, se eu executar um prompt de comando sob a conta SYSTEM e ir e apagar a pasta 'cache' do controlador em "C:\windows\system32\DriverStore\FileRepository\DRIVER FOLDER" antes executar "devcon" então isso também funciona.

Agora, estou a pensar que estou a faltar algo bastante básico aqui como isto parece ser uma maneira bastante dolorosa de fazê-lo.Por favor ajude!Obrigado!

Foi útil?

Solução

Por que você não pode simplesmente desconectar o dispositivo e substituir a DLL descarregada?Você não deve precisar reinstalar o driver, apenas substitua o módulo.Observe que você não deve fazer isso durante a produção ou qualquer coisa que tenha a ver com clientes, mas se estiver escrevendo um driver, basta inserir o novo módulo com o mesmo número de versão.

No Win7, isso parece estar corrigido em 7600 e 16385 em "ntverp.h".Isso é intencional?

Sim, pelo menos até o próximo service pack

Outras dicas

Como Paul Betts sugeriu acima, o caminho a seguir parece ser simplesmente substituir a DLL UMDF diretamente na pasta do driver (por exemplo, c:\windows\system32\drivers\umdf\) após desabilitar o dispositivo no gerenciador de dispositivos ou usando "devcon".Eu fiz essa pergunta no grupo de notícias de drivers de dispositivos da Microsoft antes de postar aqui, mas não obtive uma resposta satisfatória - mas algumas pessoas acabaram respondendo lá depois Eu postei aqui!Então vou colocar um link para esse post também:

http://bit.ly/6PDxKT

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top