Crear un nuevo controlador de filtro
En este tema se explica cómo usar Visual Studio para empezar a escribir un nuevo controlador de filtro. Los controladores de filtro son diferentes de los controladores de funciones del dispositivo, los controladores de software y los controladores del sistema de archivos, que tratamos en otros temas. Para obtener información sobre los controladores de filtro y cómo difieren de otros tipos de controladores, consulte los temas siguientes.
- ¿Qué es un controlador?
- Elección de un modelo de controlador
- Nodos de dispositivo y pilas de dispositivos
- Controladores de filtro
- Tipos de controladores WDM
Para comenzar, primero determine qué modelo de controlador es adecuado para el controlador de filtro. Para obtener ayuda para determinar qué modelo es mejor para usted, consulte Elección de un modelo de controlador. Si va a escribir un controlador de filtro para un dispositivo de hardware, determine dónde encaja el dispositivo en la lista de tecnologías descritas en Tecnologías de dispositivos y controladores. Consulte la documentación de esa tecnología concreta para ver si hay alguna guía para elegir un modelo de controlador de filtro. El modelo de controlador de filtro 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), el marco de controladores del modo kernel (KMDF) o el modelo de controlador de Windows (WDM). Para otras tecnologías, la documentación proporciona detalles explícitos sobre cómo escribir un controlador de filtro. Algunas tecnologías tienen modelos de filtro mini. Para algunas tecnologías, es posible que no haya ninguna recomendación para un modelo de controlador de filtro.
A continuación, 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.
- En Visual Studio, en el menú Archivo , elija Nuevo | Proyecto.
- En el cuadro de diálogo Nuevo proyecto, en el panel izquierdo, busque y seleccione Visual C++ | Controlador de Windows | WDF.
- En el panel central, seleccione Controlador en modo de usuario (UMDF).
- Rellene los cuadros Nombre y Ubicación y seleccione Aceptar. 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 UMDF. Ahora puede proporcionar el código específico del filtro.
Caso 2: La documentación de su tecnología recomienda KMDF.
- En Visual Studio, en el menú Archivo , elija Nuevo | Proyecto.
- En el cuadro de diálogo Nuevo proyecto, en el panel izquierdo, busque y seleccione WDF.
- En el panel central, seleccione Kernel Mode Driver (KMDF).
- Rellene los cuadros Nombre y Ubicación y seleccione Aceptar. 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 que tenga 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 filtro.
Caso 3: La documentación de la tecnología describe un modelo de filtro o mini filtro específico.
Si la tecnología del dispositivo tiene un modelo de filtro o minifiltro específico, compruebe si Visual Studio tiene una plantilla para el modelo.
- En Visual Studio, en el menú Archivo , elija Nuevo | Proyecto.
- En el cuadro de diálogo Nuevo proyecto, en el panel izquierdo, busque y seleccione Plantillas | Visual C++ | Controlador de Windows.
- Examine la lista de plantillas instaladas para ver si hay una plantilla para el tipo de filtro que necesita escribir. Por ejemplo, puede elegir la plantilla Controlador de filtro: NDIS en Redes.
- Si no hay ninguna plantilla para el tipo de controlador de filtro en Controlador de Windows, seleccione En línea y examine las plantillas que están disponibles en línea.
- Si encuentra una plantilla para el tipo de controlador de filtro, seleccione la plantilla, rellene los cuadros Nombre y Ubicación y seleccione Aceptar.
- En este momento, tiene un proyecto de controlador que implementa el código general requerido por el controlador de filtro. Ahora puede proporcionar el código específico del filtro. 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 filtro específico o un minifiltro, y no puede encontrar una plantilla para el tipo de controlador de filtro, consulte la documentación específica de la tecnología para obtener instrucciones para determinar si se debe usar UMDF, KMDF o WDM.
Caso 4: La documentación de su tecnología recomienda WDM.
En Visual Studio, en el menú Archivo , elija Nuevo | Proyecto.
En Visual Studio, en el cuadro de diálogo Nuevo proyecto, en Controlador de Windows, seleccione WDM.
Rellene los cuadros Nombre y Ubicación y seleccione Aceptar.
En este momento, tiene un proyecto de controlador WDM vacío. En la ventana Explorador de soluciones, seleccione y mantenga presionado (o 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, seleccione Archivo de C++ (.cpp), escriba un nombre para el archivo y seleccione Aceptar.
Nota Si desea crear un archivo .c en lugar de un archivo .cpp, escriba un nombre que tenga la extensión .c .
Implemente las funciones requeridas por el filtro. A medida que implemente y organice las funciones, puede decidir agregar archivos .cpp o .c adicionales.
Caso 5: La documentación de la tecnología no tiene una recomendación para un modelo de controlador de filtro.
Determine si UMDF, KMDF o WDM es el mejor modelo para el controlador de filtro. Para obtener ayuda, consulte Elección de un modelo de controlador.
En Visual Studio, en el menú Archivo , elija Nuevo | Proyecto.
En Visual Studio, en el cuadro de diálogo Nuevo proyecto, en Controlador de Windows, seleccione una de las siguientes plantillas:
- WDF | Controlador en modo de usuario (UMDF)
- WDF | Controlador en modo kernel (KMDF)
- WDM | Controlador de kernel vacío
Nota Al crear un nuevo controlador KMDF o UMDF, debe seleccionar un nombre de controlador que tenga 32 caracteres o menos. Este límite de longitud se define en wdfglobals.h.
Implemente las funciones requeridas por el filtro. Cree nuevos archivos .c o .cpp según sea necesario.
Si no está seguro de qué plantilla usar, considere la posibilidad de leer o publicar en el foro de desarrollo de controladores y WDK de hardware de Windows .