Transcript Wdm

WINDOWS DRIVER
MODEL
DRIVER



Un driver o controlador es un software o
programa que sirve de intermediario entre un
dispositivo de hardware y el sistema operativo.
Permite extraer el máximo de las funcionalidades
del dispositivo para el cual ha sido diseñado, el
driver se crea además para que funcione con un
sistema operativo especifico.
Los controladores se instalan según el Windows
que utiliza tu computadora.
¿QUE ES WDM?



WDM (Windows Driver Model/Modelo de
Controlador de Windows)
Es un sistema que da un marco para el
desarrollo y ejecución de los controladores de
dispositivos de hardware.
Permite que los desarrolladores de controladores
para dispositivos puedan escribir sus
controladores de forma mas sencilla que su
predecesor VxD.
IMPORTANCIA DEL WDM
Los desarrolladores pueden:
 Crear drivers más robustos con menos esfuerzo.
 Escribir drivers para plataformas múltiples.
 Esto significa que los desarrolladores pueden
crear y manejar una sola base de código fuente,
en vez de escribir un driver separado para cada
plataforma y esto reduce la cantidad de código
que debe ser probado y elimina errores.
WINDOWS DDK



DDK (Driver Development Kit/Paquete de
Desarrollo de Drivers)
Es un software para desarrollar drivers para el
sistema operativo Windows.
Proporciona ambientes de la estructura, código
de la muestra y la documentación para
desarrollar drivers del WDM.
WINDOWS DDK
La documentación de DDK incluye lo siguiente:





Instrucciones para usar las herramientas de desarrollo del
ambiente y de la estructura de DDK.
Información detallada sobre arquitectura del driver del modokernel de Windows.
Información de referencia sobre las librerías del modo-kernel.
Información Device-specific sobre los drivers de escritura para
las clases de dispositivo de Windows.
Información sobre la instalación de los dispositivos y de los
drivers.
TIPOS DE WDM



Driver de Bus.-cada bus controla una E/S y
brinda funcionalidad por ranura, esto hace
dispositivos independientes.
Driver de Función.-cada driver controla un
dispositivo individual.
Driver de Filtro.-filtro de E/S solicitado por un
dispositivo, una clase de dispositivos o un bus.
DESVENTAJAS DEL WDM






Bastante complicado de aprender.
Las interacciones con los eventos energía y el plug and play son
difíciles de gestionar. Esto conduce a una variedad de situaciones
donde las máquinas no pueden hibernar o despertar
correctamente debido a errores en el código del controlador.
La cancelación de I/O (Entrada/Salida) es casi imposible de
hacerla bien.
Miles de líneas de código de soporte son requeridas para cada
controlador.
No tiene soporte para la escritura de controladores en modousuario puro.
Múltiples problemas en la calidad de la documentación.
Crear un WDM Driver
Antes de empezar, la declaración para rutinas miembros y estructuras es esencial. El driver requerido
más importante en la estructura de datos es el de Extensión-Dispositivo (Device-Extension)
<PRE id=pre0 style="MARGIN-TOP: 0px; DISPLAY: block">typedef struct
tagDEVICE_EXTENSION {
PDEVICE_OBJECT DeviceObject;
// device object this driver creates
PDEVICE_OBJECT NextDeviceObject;
// next-layered device object in this
// device stack
DEVICE_CAPABILITIES pdc;
// device capability
IO_REMOVE_LOCK RemoveLock;
// removal control locking structure
LONG handles;
// # open handles
PVOID DataBuffer;
// Internal Buffer for Read/Write I/O
UNICODE_STRING Device_Description;
// Device Description
SYSTEM_POWER_STATE SysPwrState;
// Current System Power State
DEVICE_POWER_STATE DevPwrState;
// Current Device Power State
PIRP PowerIrp;
// Current Handling Power-Related IRP
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;</PRE>
Estructura para crea un WDM
Función del WDM
http://www.codeproject.com/system/WDM_Driver_development.asp