Directorio para el desarrollo WDF del controlador de dispositivo de Windows
Capítulo 1 Windows 2000 y controladores WDM 1
1.1 Descripción general de los componentes de Windows 2000 1
1.2 Tipos de controladores en Windows 2000 3
1.3 Características del controlador WDM 4
1.2.1 Objetivos de diseño de los controladores en modo kernel 4
1.3.2 Modelo del controlador WDM 7
1.3 .3 Dispositivo y controlador Jerarquía 8
1.3.4 Nivel de interrupción IRQL 9
1.3.5 Interfaz del dispositivo 10
Capítulo 2 Marco del controlador KMDF 12
2.1 Objeto KMDF 12
2.1.1 Concepto de objeto 12
2.1.2 Objeto básico 17
2.2 Estructura del programa KMDF 18
2.2. 1 Rutina DriverEntry 19
2.2.2 Rutina EvtDriverDeviceAdd 22
2.2.3 Rutina de procesamiento de E/S 25
2.2.4 Rutinas Plug and Play y administración de energía 30
2.3 Ejemplo CharSample 30
Capítulo 3 Objetos básicos 32
3.1 Objeto WDFREQUEST 32
3.1.1 Función de objeto WDFREQUEST 32
3.1.2 Operaciones básicas de solicitudes de E/S 38
3.2 Objeto WDFQUEUE 44
3.2.1 Función del objeto WDFQUEUE 46
3.2 .2 Programación de colas 48
3.3 Objeto WDFTIMER 50
3.4 Objeto WDFDPC 52
3.5 Objeto WDFWORKITEM 53
3.6 Objeto WDFMEMORY 55
3.7 Acceso a sincronización de datos 56
3.7.1 Objeto WDFSPINLOCK 57
3.7.2 Objeto WDFWAITLOCK 58
3.8 Operación de cadena 58 p>
3.8.1 Formato de cadena 58
3.8.2 Objeto WDFSTRING 59
3.8.3 Función de procesamiento de cadena 60
3.9 Instancia de QueueSample 61
Capítulo 4 Introducción a la programación del controlador KMDF 70
4.1 Establecimiento del entorno de programación KMDF 70
4.2 Crear controlador KMDF 71
4.3 Generar KMDF controlador 72
4.4 Instalar el controlador KMDF 73
4.5 Instancia RegSample 78
4.5.1 Controlador RegSample 78
4.5.2 Consola Win32 Aplicación 92
4.5.3 Aplicación MFC 98
4.6 Instrucciones de depuración 103
Capítulo 5 Comunicación entre el controlador KMDF y la aplicación 104
5.1 Aplicación a la comunicación con el conductor 104
5.1.1 Abrir el dispositivo 105
5.1.2 Apagar el dispositivo 106
5.1.3 Llamada a la función DeviceIoControl 106 p>
5.1.4 Llamada a función ReadFile y WriteFile 111
5.1 .5 Instancia IOSample 112
5.2 Comunicación del controlador a la aplicación 116
5.2 .1 Finalización asíncrona de DeviceIoControl 116
5.
2.2 Notificación de eventos WIN32 117
5.3 Ejemplo de comunicación entre controlador y aplicación 119
5.3.1 Ejemplo de finalización asincrónica CancelSample 120
5.3.2 Ejemplo de notificación de eventos EventSample 130
Capítulo 6 Rutinas Plug and Play 145
6.1 Introducción a Plug and Play 145
6.1.1 Componentes PnP 145
6.1 .2 Rutinas plug and play 146
6.1.3 Secuencia de carga y descarga de rutinas 150
6.2 Instancia PnpPowerSample 152
Capítulo 7 Capítulo Administración de energía 160 p>
7.1 Introducción a la administración de energía 160
7.1.1 Estado de energía del sistema y estado de energía del dispositivo 160
7.1.2 Indicadores de control de administración de energía 162
7.1.3 Características de activación del dispositivo y detección de inactividad 163
7.2 Programación de administración de energía 163
7.2.1 Rutinas básicas de administración de energía 164
7.2.2 Activación del dispositivo 164
7.2.3 Detección de inactividad 166
7.3 Instancia de IdleSample 168
Capítulo 8 Controlador de filtro KMDF 174
8.1 Programación del controlador de filtro KMDF 175
8.2 Instalación del controlador de filtro KMDF 176
8.3 Ejemplo de muestra de filtro 177
No 9 Capítulo Desarrollo de dispositivos USB 188
9.1 Descripción general de la interfaz USB 188
9.1.1 Configuración, interfaces y puntos finales del dispositivo USB 189
9.1.2 Método de transmisión de datos USB 192
9.1.3 USB descriptor 199
9.1.4 Solicitud de dispositivo estándar 207
9.2 Objeto de programación USB 210
9.2 .1 Objeto WDFUSBDEVICE 210
9.2. 2 Objeto WDFUSBINTERFACE 215
9.2.3 Objeto WDFUSBPIPE 218
9.3 Programación USB 222
9.3 .1 Configuración de activación y configuración de suspensión 222
9.3.2 Operación síncrona 224
9.3.3 Operación asíncrona 225
9.4 Instancia de muestra USB 227
Capítulo 10 Desarrollo de controladores de dispositivos PCI 244
10.1 Acceso al Hardware 245
10.1.1 Acceso a E/S 245
10.1.2 Acceso a la Memoria 248
10.1.3 Programación del acceso al Hardware 251 p>
10.2 Procesamiento de interrupciones 254
10.2.1 Objeto WDFINTERRUPT 254
10.2.2 Procesamiento de interrupciones Programación 257
10.3 Transferencia DMA 258
10.3.1 Objeto de programación DMA 258
10.3.2 Programación de transferencia DMA 267
10.4 Ejemplo PCISample 268
10.5 Ejemplo DMASample 279
Capítulo 11 Introducción a la programación del controlador UMDF 297
11.1 Entorno de programación UMDF 297
11.2 Crear controlador UMDF 297
11.3 Generar controlador UMDF 299 p>
11.4 Instalar el controlador UMDF 299
11.5 Instancia de muestra UMDF 302
11.5 1 controlador 302
11.5.2.
Aplicación de consola Win32 339
Capítulo 12 Introducción al uso de WinDbg 340
12.1 Depuración de KMDF con WinDbg 340
12.1.1 Configuración de la máquina de destino 341
12.1.2 Configuración de la ruta del host 343
12.1.3 Establecimiento de la conexión 343
12.1.4 Carga del archivo de símbolos 344
12.1. 345
12.1.6 Ejecución de punto de interrupción 346
12.1.7 Descargar paquete de símbolos 347
12.2 Usar WinDbg para depurar UMDF 348
12.2 .1 Configuración de ruta 348
12.2.2 Proceso de enlace 348
12.2.3 Establecer puntos de interrupción 349
12.2.4 Habilitar la carga UMDF y la depuración del código de inicialización 350
Referencia 351