Introdução a Windows Drivers

Download da Ementa

Objetivo

O objetivo deste curso é preparar os alunos que queiram entender, testar, complementar ou construir drivers para Windows empregando os conceitos da plataforma Windows NT, identificando e apresentando as informações essenciais para o entendimento do papel de um driver e de como ele interage com o resto do sistema operacional.

Os conceitos e práticas apresentados neste curso são requisitos mínimos para o perfeito entendimento dos cursos de WDM Drivers e de File Systems Drivers. Técnicas de acesso ao hardware não são abordados, sendo elas parte integrante do curso de WDM Drivers.

Público alvo

Este curso é destinado aos desenvolvedores ou estudantes que precisam entender os conceitos fundamentais sobre implementação de drivers para Windows, técnicas de depuração de drivers de Kernel tais como Live Debug e análises de dump do sistema, e instalação de drivers.

Pré-requisitos

  • Os estudantes deverão ter sólidos conhecimentos da linguagem C tais como estruturas, ponteiros, heap, utilização da pilha, alocação dinâmica de memória e listas. O uso de linguagem C++ não será empregado neste curso. Os estudantes também deverão conhecer conceitos de depuração de software.
  • Conhecimentos básicos da API do Windows tais como lidar com arquivos, handles, eventos, threads e processos.
  • Conceitos básicos de Sistemas Operacionais.

Medotologia

Os tópicos são abordados de maneira simples e gradativa de forma a colocar em prática cada novo tópico apresentado. O curso é repleto de atividades práticas que despertam novas dúvidas enquanto o estudante ainda está em curso, tendo assim a oportunidade de consultar um profissional da área. O curso é todo apresentado em slides e acompanha material impresso.

Tópicos abordados

  1. Visão Geral da Arquitetura do Sistema
    • Processos e Threads
    • Memória Virtual
      • Address Spaces
      • Page Fault
      • Paginação
      • MDL
      • Section
    • Kernel-Mode x User-Mode
    • Subsistemas e API Nativa
    • I/O Manager
      • File Objects
      • Driver Objects
      • Device Objects
      • IRP
    • Pilha de Dispositivos
    • Object Manager
    • Registry
    • Camada de Abstração de Hardware
    • Tipos de Drivers
      • Legacy
      • WDM
      • WDF (KMDF e UMDF)
      • File Systems
      • Minifilters
  2. Ambiente (obtenção, instalação e utilização)
    • Windows Driver Foundation Kit
    • Microsoft Visual Studio Express
    • Microsoft Debuggging Tools for Windows
    • Símbolos
    • Máquinas Virtuais
  3. Escrevendo um Driver
    • Criando um Projeto
      • DriverEntry
      • DriverUnload
    • Compilando um Driver
    • Instalando um Driver
      • Dependências
      • Grupos
      • Load Order
    • Depurando um Driver
      • Configurando o Sistema
      • Instalações Checked Build
      • Driver Verifier
      • Mapeando Imagens
      • Máquinas Virtuais
    • Iniciando um Driver
    • Strings e Conversões
    • Alocando Memória
      • Pools de Alocação
      • Tags
      • Listas
    • Criando Device Object
    • Symboyc Links
    • I/O Request Packets
      • Parâmetros de uma IRP
      • Completando IRPs
    • Objetos, Handles e Ponteiros
    • Create, Cleanup e Close
    • Implementando Dispatch Routines
      • Buffered I/O
      • Direct I/O
      • Neither I/O
    • IOCTls e DeviceIoControl
    • Contexto Arbitrário
    • IRQLs, APCs e DPCs
      • Alertas
  4. Escrevendo Filtros
    • Filtros para Drivers Legacy
    • Repassando IRPs
    • Stack Locations
    • I/O Completion Routines
    • Tratamento de IRPs Pendentes
      • Filas de Sistema
      • Filas Customizadas
    • Cancelamento de IRPs
    • Criando IRPs para outros Drivers
      • Alocando/Reutilizando IRPs
      • Drivers de Alto Nível
      • IRPs Síncronas / Assíncronas
  5. Miscelaneous
    • Notificações
      • Shutdown
      • Processos / Threads
      • Imagens
    • System Threads e Work Items
    • Dispatch  Objects
      • Evento
      • Mutex
      • Semáforo
      • Timer
      • Thread
    • Esperando Objetos
    • Sincronismo
      • Critical Region
      • ERESOURCE
      • Spin Locks
      • Fast Mutex
      • Interlocked Actions
  6. Instalações
    • Service Control Manager
    • Criando um arquivo INF
    • Instalando um Driver
    • Desinstalando um Driver
  7. Referências
    • Web Sites
    • Grupos de Discussão
    • Livros

Comments are closed.