Rutinas de envío necesarias
La mayoría de los controladores deben controlar las siguientes rutinas de distribución :
-
IRP_MJ_PNP indica una solicitud que implica el reconocimiento de dispositivos PnP, la configuración de hardware o la asignación de recursos. Estas solicitudes se envían normalmente a un controlador de dispositivo desde el administrador de PnP o desde un controlador de nivel superior estrechamente acoplado.
-
IRP_MJ_POWER indica una solicitud relativa al estado de alimentación del dispositivo o del sistema. Este tipo de solicitudes se envían al controlador del dispositivo mediante el administrador de energía o un controlador de nivel superior estrechamente acoplado.
-
IRP_MJ_CREATE indica que un subsistema protegido en modo de usuario, posiblemente en nombre de una aplicación o controlador específico del subsistema, ha solicitado un identificador para el objeto de archivo asociado al objeto de dispositivo de destino o que un controlador de nivel superior se conecta o conecta su objeto de dispositivo al objeto de dispositivo de destino.
-
IRP_MJ_CLOSE indica que se ha cerrado y liberado el último identificador del objeto de archivo asociado al objeto de dispositivo de destino. Todas las solicitudes de E/S se han completado o cancelado, por lo que no hay referencias pendientes al puntero del objeto de archivo.
-
IRP_MJ_READ indica una solicitud de E/S para transferir datos del dispositivo físico subyacente al sistema.
-
IRP_MJ_WRITE indica una solicitud de E/S para transferir datos del sistema al dispositivo físico subyacente.
-
IRP_MJ_DEVICE_CONTROL indica una solicitud que contiene un código de control de E/S específico del tipo de dispositivo definido por el sistema que especifica una operación específica del tipo de dispositivo. Los controladores de nivel superior pasan estos IRP a sus controladores de dispositivo subyacentes, que normalmente procesan la solicitud accediendo al dispositivo.
-
IRP_MJ_INTERNAL_DEVICE_CONTROL indica una solicitud enviada al controlador de dispositivo, en la mayoría de los casos desde un controlador de nivel superior estrechamente acoplado, normalmente con un código de control de E/S específico del controlador, específico del controlador o específico del dispositivo que solicita una operación específica del tipo de dispositivo o específica del dispositivo.
Solo se requieren ciertos tipos de controladores para controlar las solicitudes de control de E/S de dispositivos internos definidos por el sistema, incluidos determinados controladores SCSI, controladores de teclado o dispositivos de mouse, y controladores paralelos que interoperan con controladores proporcionados por el sistema.
-
IRP_MJ_SYSTEM_CONTROL se usa para especificar solicitudes WMI a los controladores. Para obtener más información sobre WMI, vea Instrumental de administración de Windows.
Las rutinas de envío que un controlador debe proporcionar varían según el tipo y la funcionalidad del dispositivo físico subyacente. Para obtener información específica del tipo de dispositivo sobre los códigos de función principales de IRP que los controladores deben controlar, consulte la documentación específica del tipo de dispositivo en el Kit de controladores de Windows (WDK).