Regra DoubleFetch (wdm)
A regra DoubleFetch é uma regra de segurança importante que verifica se um driver está acessando com segurança buffers que são passados para o espaço do usuário por meio de IRPs. A maneira apropriada de enviar dados com segurança entre um driver e um componente de modo de usuário é descrita em Usando nem buffer nem E/S direta.
Um driver deve acessar buffers de dados seguindo as diretrizes e as práticas recomendadas descritas em Métodos para acessar buffers de dados.
Essa regra verifica se há busca dupla de ponteiros de memória do modo de usuário. Acessos duplos no modo kernel da memória do modo de usuário podem levar a um problema de segurança de condição de corrida. Ao acessar dados do modo de usuário, o código do modo kernel precisa fazer uma cópia dos dados do modo de usuário localmente e evitar acessar os dados do modo de usuário várias vezes. Não fazer isso resulta em um tipo de problema conhecido como "busca dupla", em que os dados podem ser alterados após serem acessados pela primeira vez.
Essa regra está disponível a partir do Windows 10 WDK, build 20236. Essa regra só está disponível para tipos de driver genéricos e WDM.
Modelo de driver: WDM, Genérico
Como testar
Em tempo de compilação:
Execute o Verificador de Driver Estático e especifique a regra de dupla busca .
Use as seguintes etapas (encontradas em Usando o Verificador de Driver Estático para localizar defeitos em drivers do Windows) para executar uma análise do seu código:
Para obter mais informações, consulte Usando o verificador de driver estático para localizar defeitos em drivers.