Objetivo
O objetivo deste curso é prover a especialização em dispositivos USB para o desenvolvimento de drivers utilizando os recursos oferecidos pelo Kernel-Mode Driver Framework (KMDF) do Windows Driver Foundation (WDF).
Público alvo
Este curso é destinado aos desenvolvedores ou estudantes que precisam entender os conceitos fundamentais sobre o protocolo USB, suas características e recursos do KMDF para a implementação de drivers para dispositivos dessa classe sobre a plataforma Windows. Este curso não abordará o uso do User-Mode Driver Framework (UMDF) do WDF.
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.
- Experiência no uso de KMDF para o desenvolvimento de drivers, incluindo depuração e instalação
Metodologia
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
- Dispotisivos USB
- Overview USB
- Device, Interface, Endpoint e Pipes
- Tipos de Transferências
- Control
- Bulk
- Interrupt
- Isochronous (Overview)
- Estados do Endpoint
- Descritores
- Device
- Configuração
- Interface
- EndPoint
- String
- Device Simulation Framework
- Overview
- Instalação
- Dispositivos de Exemplo
- Desenvolvimento
- USB I/O Targets
- IRPs e URBs
- I/O Requests para USB
- Suporte para KMDF para leituras contínuas
- Suspend Seletivo
- Estudo do Exemplo OSR (OsrUsbFx2)