Pergunta

Me deparei com drivers de modo kernel com muito pouca experiência.Aqui está o que estou tentando fazer:

  • Tenha um aplicativo em modo de usuário que carregue o driver.
  • Faça com que o aplicativo em modo de usuário escreva nele para enviar uma instrução.
  • Faça com que o driver envie a instrução RDMSR para o chip Intel.
  • Retorne os resultados para o aplicativo de modo de usuário.

Eu li Este artigo que descreve as diferentes maneiras pelas quais você pode realizar esse comportamento (E/S em buffer, E/S direta ou Nenhuma).

Meu problema é o seguinte... o artigo tem um código que representa a forma como você estruturaria um WDM driver, e eu esperava poder criar um modelo de projeto WDM KMDF usando o Windows Driver Kit, mas quando baixei o Windows Driver Kit (WDK), o único modelo de driver KMDF era para um WDF motorista. O MSDN tem um artigo que descreve as diferenças entre os dois.Isso é meio estranho para mim.Eu esperava obter um modelo pronto para uso que pudesse modificar para funcionar como no artigo que vinculei, mas não o vejo.Por que não há modelo para um driver WDM KMDF?

Apenas uma observação adicional: você pode facilmente saber o tipo de driver com base no maneira como ele cria o dispositivo (IoCreateDevice implica WDM, enquanto WdfDeviceCreate implica WDF).

Foi útil?

Solução

Há muitas inconsistências na questão.Em primeiro lugar, KMDF é um subconjunto de WDF (e é o único relevante WDF parte quando se fala sobre drivers de kernel), portanto não há contradição entre os dois.Todo driver de kernel é essencialmente um WDM motorista. KMDF é um quadro no WDM e KMDF os drivers são normalmente chamados, bem, KMDF motoristas, sem falar WDM. WDM driver geralmente se refere ao driver que não usa nenhuma estrutura adicional, como KMDF.Segundo, WDK integra-se ao VS2012/2013 e você deve tê-lo instalado além do WDK para obter os modelos.Terceiro, WDM modelo aparece na lista.Se você não tiver, sugiro reinstalar o WDK e VS.

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