Creación de un controlador de función de dispositivo
En este artículo se explica cómo usar Visual Studio para empezar a escribir un nuevo controlador de función de dispositivo. Los controladores de funciones de dispositivo son diferentes de los controladores de filtro, los controladores de software y los controladores del sistema de archivos, que tratamos en otros artículos. Para obtener información sobre los controladores de funciones de dispositivo y cómo difieren de otros tipos de controladores, consulte ¿Qué es un controlador?, Elegir un modelo de controlador y nodos de dispositivo y pilas de dispositivos.
Para empezar, determine dónde encaja el dispositivo en la lista de tecnologías descritas en Device and Driver Technologies. Para obtener información sobre qué modelos de controladores están disponibles para el dispositivo, consulte la documentación de esa tecnología concreta. El modelo de controlador recomendado varía de una tecnología a la siguiente. Para algunas tecnologías, la documentación recomienda usar el marco de controlador del modo de usuario (UMDF) o el marco de controlador del modo kernel (KMDF). Para otras tecnologías, la documentación explica cómo crear un minidriver que forme parte de un par de controladores. Los minidrivers van por varios nombres, incluyendo minipuerto y miniclase.
Determine cuál de los casos siguientes describe la recomendación del modelo de controlador y siga los pasos:
Caso 1: La documentación de la tecnología recomienda UMDF
- Inicie Visual Studio.
- Elija Crear un nuevo proyecto en el cuadro de diálogo de inicio o seleccione Nuevo | Proyecto desde el menú Archivo de Visual Studio.
- En el panel derecho del cuadro de diálogo Crear un proyecto, busque y seleccione Controlador de modo de usuario (UMDF V2) .
- Seleccione Next (Siguiente).
- Rellene los cuadros Nombre del proyecto, Ubicación y Nombre de la solución y seleccione Crear. Para obtener más información, consulte Escritura de un controlador UMDF basado en una plantilla.
Nota
Al crear un nuevo controlador UMDF, debe seleccionar un nombre de controlador con 32 caracteres o menos. Este límite de longitud se define en wdfglobals.h.
- En este momento, tiene un proyecto de controlador que implementa el código general requerido por la mayoría de los controladores de UMDF. Ahora puede proporcionar el código específico del dispositivo. Consulte la documentación de su tecnología para obtener información sobre las interfaces que necesita implementar.
Caso 2: La documentación de la tecnología recomienda KMDF
- Inicie Visual Studio.
- Elija Crear un nuevo proyecto en el cuadro de diálogo de inicio o seleccione Nuevo | Proyecto desde el menú Archivo de Visual Studio.
- En el panel derecho del cuadro de diálogo Crear un proyecto, busque y seleccione Controlador de modo kernel (KMDF).
- Seleccione Next (Siguiente).
- Rellene los cuadros Nombre del proyecto, Ubicación y Nombre de la solución y seleccione Crear. Para obtener más información, vea Escribir un controlador KMDF basado en una plantilla.
Nota
Al crear un nuevo controlador KMDF, debe seleccionar un nombre de controlador con 32 caracteres o menos. Este límite de longitud se define en wdfglobals.h.
- En este momento, tiene un proyecto de controlador que implementa el código general requerido por la mayoría de los controladores kmdf. Ahora puede proporcionar el código específico del dispositivo. Consulte la documentación de su tecnología para obtener información sobre los métodos que necesita implementar.
Caso 3: La documentación de la tecnología describe un modelo de minidriver
Si la tecnología del dispositivo tiene un miniporte, miniclase o algún otro modelo de minidriver, compruebe si Visual Studio tiene una plantilla específica para el modelo.
- Inicie Visual Studio.
- Elija Crear un nuevo proyecto en el cuadro de diálogo de inicio o seleccione Nuevo | Proyecto desde el menú Archivo de Visual Studio.
- En el panel derecho del cuadro de diálogo Crear un proyecto, examine la lista de plantillas instaladas para buscar una plantilla para el tipo de controlador que necesita escribir.
- Si encuentra una plantilla para el tipo de controlador, selecciónela.
- Seleccione Next (Siguiente).
- Rellene los cuadros Nombre del proyecto, Ubicación y Nombre de la solución y seleccione Crear.
- Si se le presenta un asistente para controladores, recorra el asistente para crear el proyecto de controlador.
- En este momento, tiene un proyecto de controlador que implementa el código general requerido por el controlador. Ahora puede proporcionar el código específico del dispositivo. Consulte la documentación de la tecnología para obtener información sobre las funciones que necesita implementar.
Si la tecnología del dispositivo tiene un modelo de minidriver y no puede encontrar una plantilla específica para el tipo de minidriver, es más probable que la plantilla modelo de controlador de Windows (WDM) sea el punto de partida. Consulte la documentación específica de la tecnología para obtener instrucciones. En raras ocasiones, puede usar KMDF para escribir un minidriver, pero normalmente el punto de partida es WDM.
- Inicie Visual Studio.
- Elija Crear un nuevo proyecto en el cuadro de diálogo de inicio o seleccione Nuevo | Proyecto desde el menú Archivo de Visual Studio.
- En el panel derecho del cuadro de diálogo Crear un nuevo proyecto , busque y seleccione Controlador WDM vacío.
- Seleccione Next (Siguiente).
- Rellene los cuadros Nombre del proyecto, Ubicación y Nombre de la solución y seleccione Crear.
- En este momento, tiene un proyecto de controlador WDM vacío. En la ventana Explorador de soluciones, haga clic con el botón derecho en el proyecto de controlador y elija Agregar | Nuevo elemento.
- En el cuadro de diálogo Agregar nuevo elemento , escriba un nombre para el archivo de .cpp y seleccione Agregar.
Nota
Si desea crear un archivo .c en lugar de un archivo .cpp, escriba un nombre que tenga la extensión .c .
- Consulte la documentación de la tecnología para obtener información sobre las funciones que necesita implementar. A medida que implemente y organice las funciones, puede decidir agregar más archivos .cpp o .c.