c++ - vehiculos - Comenzando en el desarrollo de controladores
id de la florida (5)
Buscaría tutoriales con ejemplos ricos, como este . La esencia del desarrollo de controladores de Windows es obtener una imagen de las capas y los IRP, IRQL y también conocer términos como controladores de filtro. Si está buscando códigos de ejemplo, aquí está mi código de controlador de Spodek: enlace sf.net . Encontrará allí un controlador de filtro (para teclado, keyb.c), cola de espacio del kernel (queue.c) y técnicas para ocultar la presencia en el sistema. Sin embargo, es un controlador legado (sys).
¿Alguien tiene libros / tutoriales que puedan ser útiles para iniciarse en el desarrollo de controladores de dispositivos de Windows?
Para un desarrollo simple de Win32 / GUI, el libro de Petzold parece ser la referencia esencial. ¿Existe tal para los conductores?
Me gustaría señalar que en realidad no estoy hablando con el hardware; en realidad, quiero emular una pieza de hardware en el software, pero primero me gustaría ver cómo funcionan las cosas en general.
Billy3
Para aprender bien el desarrollo del kernel:
a. muchos programas de kernel de muestras:
Ejemplo de Windows DDK:
Muestras de WDK:
http://msdn.microsoft.com/en-us/windows/hardware/gg487428
O simplemente busca:
http://www.google.com/search?q=windows+ddk+samples
(porque la URL anterior puede cambiar, pero es probable que Google le devuelva el más adecuado / accesible)
segundo. muchas técnicas de depuración, y entre las que encontré las mejores está VMware (o VirtualBox) + windbg + depuración del puerto serie:
http://www.google.com/search?q=windbg+vmware+kernel+debug
y este papel es clásico para usar VMWare + windbg (Lord of the Ring0):
http://silverstr.ufies.org/lotr0/windbg-vmware.html
do. así como las herramientas de administración del sistema que otros han construido:
http://technet.microsoft.com/en-us/sysinternals/bb545021
(En el pasado, llamado SysInternals, construido por Mark Russinovich, coautor de "Windows Internal", ¡¡DEBE LEER !!)
http://technet.microsoft.com/en-us/sysinternals/bb963901
De estas herramientas tienes inmensas opciones de depuración.
re. Únase a la lista de correo de OSR (especialmente ntdev es muy activo, pero hay otros como windbg):
http://www.osronline.com/page.cfm?name=ListServer
mi. Mire muchos videos relacionados con Windows + kernel en channel9 (Google devolvió más de 1000 enlaces):
http://www.google.com/search?q=site:channel9.msdn.com+kernel+video&num=100
F. Foro de discusión como:
http://social.microsoft.com/Forums/en-us/kernel/threads
http://social.msdn.microsoft.com/Forums/en-US/wdk/threads
Suscrito a la revista gratuita OSR también (copia impresa). He recibido el mío desde 1998 hasta ahora, ¡y se entrega a mitad de camino alrededor de la tierra!
Personalmente, la mejor manera de comenzar a desarrollarse es mediante la exposición en el mundo real. Teniendo esto en cuenta, recomendaría este libro.
El Arsenal de Rootkit: Escape y Evasión en las Esquinas Oscuras del Sistema
Debería ser suficiente para que empieces a tener un código en ejecución que haga "algo" y luego, después de tener la imagen general, puedes ocuparte de temas como: Diferencia entre los métodos de Buffered / Norither / Direct y las peculiaridades asociadas con ellos.
"Programar el modelo de controlador de Windows, 2ª edición" también es una gran ayuda cuando necesita detalles sobre algunos temas específicos. Pero primero creo que lo más importante es poner las cosas en contexto y luego construir sobre eso.
Probablemente debería usar el marco bastante reciente de Windows Driver Foundation (WDF) en lugar del antiguo marco WDM. Un buen punto de partida es leer los documentos de Word de WDF Overview .
Si desea leer un libro, el que está buscando es "Desarrollar controladores con Windows Driver Foundation" .
Una cosa a tener en cuenta es que el desarrollo del controlador del dispositivo (arquitectura y herramientas) cambia más que el desarrollo de Win32 ... así que mientras que el libro de Petzold de la década de 1990 está bien para Win32 y puede considerarse un clásico atemporal, la arquitectura para muchos tipos de controladores ( controladores de impresora, controladores de red, etc.) ha variado en varias versiones de O / S.
Aquí hay una entrada de blog que revisa varios libros: Reseñas de libros de controladores de dispositivos de Windows .
No olvide la documentación de Microsoft incluida con el DDK: y, lo más importante, los controladores de muestra (código fuente) incluidos con el DDK. Cuando quise escribir un controlador de puerto serie simulado, por ejemplo, encontré que la muestra de la documentación del controlador serie combinada con la documentación del DDK fue invaluable (y suficiente).