Modo de usuário e modo kernel
Um processador em um computador que executa o Windows opera em dois modos diferentes: modo de usuário e modo kernel. O processador alterna entre esses modos dependendo do tipo de código que está executando. Os aplicativos operam no modo de usuário, enquanto os principais componentes do sistema operacional funcionam no modo kernel. Embora muitos drivers operem no modo kernel, alguns podem funcionar no modo de usuário.
Modo de utilizador
Quando se inicia uma aplicação no modo de utilizador, o Windows cria um processo de para ela. Esse processo fornece ao aplicativo um espaço de endereço virtual privado e uma tabela de identificadores privada. Como o espaço de endereço virtual de cada aplicativo é privado, um aplicativo não pode modificar os dados de outro aplicativo. Cada aplicativo é executado isoladamente, garantindo que, se um falhar, não afete outros aplicativos ou o sistema operacional.
O espaço de endereço virtual de um aplicativo de modo de usuário também é limitado. Um processo em execução no modo de usuário não pode acessar endereços virtuais reservados para o sistema operacional. Limitar o espaço de endereço virtual de um aplicativo de modo de usuário impede que o aplicativo modifique ou danifique dados críticos do sistema operacional.
Modo kernel
Todo o código executado no modo kernel partilha um único espaço de endereço virtual. Como resultado, um driver de modo kernel não é isolado de outros drivers ou do sistema operacional. Se um driver de modo kernel grava erroneamente no endereço virtual errado, ele pode comprometer dados pertencentes ao sistema operacional ou outro driver. Se um driver de modo kernel falhar, ele fará com que todo o sistema operacional falhe.
O diagrama a seguir ilustra a comunicação entre componentes de modo de usuário e de modo kernel.