Assinando drivers WBDI
Os requisitos específicos de assinatura de código para drivers WBDI dependem se o driver WBDI é implementado usando a estrutura de driver de modo de usuário (UMDF), a estrutura de driver no modo kernel (KMDF) ou o Modelo de Driver do Windows (WDM). Além do arquivo de catálogo que precisa ser assinado, determinadas dlls precisam ser assinadas com um atributo específico. Para obter mais informações, consulte Etapas para enviar um driver de impressão digital.
Todos os pacotes de driver WBDI devem ser assinados por meio do portal whql, para garantir que ele não tenha sido adulterado. Essa assinatura é necessária se o driver é executado no modo kernel ou no modo de usuário. Você não precisa assinar todos os arquivos individuais no pacote. Em vez disso, você cria um arquivo de catálogo que contém um valor de hash para cada arquivo no pacote e assina o arquivo de catálogo. A diretiva CatalogFile no INF indica o nome desse arquivo. Para a maioria dos drivers WBDI, a assinatura do arquivo de catálogo é o único tipo de assinatura de que você precisa.
Para alguns drivers WBDI, várias assinaturas são necessárias. Um driver de inicialização no modo kernel, que é um driver carregado pelo carregador do Windows durante o processo de inicialização, requer uma assinatura inserida adicional nas plataformas x86 e x64. Portanto, um driver de inicialização geralmente deve ser conectado de duas maneiras:
- Um pacote de driver de inicialização que é instalado usando um INF deve ter um arquivo de catálogo assinado, assim como outros tipos de drivers. O arquivo de catálogo é usado para verificação de assinatura durante a instalação.
- Um arquivo binário do driver de inicialização deve ser inserido usando um SPC com um certificado cruzado correspondente. Um certificado cruzado é emitido por uma AC (chamada de raiz confiável) que assina a chave pública para o certificado raiz de outra AC, o que cria uma cadeia de confiança de uma única AC raiz confiável para várias outras ACs.
Normalmente, você inseriu um binário de driver depois de criar e assinar o arquivo de catálogo do pacote.
Os drivers de inicialização têm as seguintes características:
- O INF do driver especifica o tipo inicial como "Start=0".
- Um serviço de kernel é configurado com um ServiceType de driver de kernel ou driver do sistema de arquivos e tem StartMode definido como "boot".
Este tópico não aborda os detalhes dos requisitos ou procedimentos de assinatura de driver. Para obter informações gerais sobre os requisitos de assinatura para drivers, consulte Assinatura de driver.