Establecer marcas de objeto de dispositivo para la administración de energía
En su rutina AddDevice , cada controlador crea un objeto de dispositivo (filtrar objeto de dispositivo (DO), objeto de dispositivo funcional (FDO) o objeto de dispositivo físico (PDO)) y establece las marcas DO_XXX en el objeto de dispositivo para describir los atributos de dispositivo y la configuración del controlador. Las siguientes marcas de objeto de dispositivo pertenecen a la administración de energía.
Marca | Descripción |
---|---|
DO_POWER_INRUSH | Indica que la corriente dibujada por el dispositivo surge cuando el dispositivo está activado por primera vez. Este aumento o "pincel" dura un breve período, después del cual el actual dibujado por el dispositivo cae a un nivel de funcionamiento inferior. |
DO_POWER_PAGABLE | Indica que el controlador es paginable. A partir de Windows 2000, los controladores que se pueden paginar deben establecer la marca DO_POWER_PAGABLE. El administrador de energía llama a estos controladores en IRQL = PASSIVE_LEVEL. Para obtener más información sobre los controladores paginables, vea Hacer que los controladores sean paginables. |
Normalmente, el controlador de bus establece las marcas de objeto de dispositivo cuando crea el PDO para el dispositivo. Sin embargo, es posible que algunos controladores de función deban modificar los valores de estas marcas como parte de sus rutinas AddDevice . A partir de Windows Vista, el sistema operativo no requiere que todos los objetos de dispositivo de una pila de dispositivos tengan las mismas marcas relacionadas con la energía establecidas. Sin embargo, en Windows Server 2003, Windows XP y Windows 2000, todos los objetos de dispositivo de una pila de dispositivos deben tener establecidas las mismas marcas relacionadas con la energía.
A partir de Windows 2000, los controladores de dispositivos que se encuentran en la ruta de acceso de paginación no deben establecer la marca DO_POWER_PAGABLE. Un controlador está en la "ruta de paginación" si participa en operaciones de E/S en el archivo de paginación. Los controladores que no establecen esta marca deben poder llamarse en IRQL = DISPATCH_LEVEL. Para obtener más información, vea Restricciones en rutinas de distribución.
En general, los controladores no deben modificar el valor del controlador de autobús para la marca DO_POWER_PAGABLE y un controlador nunca debe establecer esta marca si un controlador de nivel inferior lo ha borrado. Al controlar las transiciones que implican solicitudes de paginación PnP (normalmente en respuesta a un IRP_MJ_PNP con IRP_MN_DEVICE_USAGE_NOTIFICATION solicitud), un controlador de almacenamiento debe secuenciar cuidadosamente su configuración y borrar la marca.
Los controladores de los dispositivos que requieren un pincel de alimentación al iniciarse deben establecer la marca DO_POWER_INRUSH en el objeto de dispositivo antes de borrar la marca DO_DEVICE_INITIALIZING. Solo un controlador de la pila de dispositivos, normalmente el controlador de bus (PDO), debe establecer la marca DO_POWER_INRUSH para el dispositivo. La marca notifica al administrador de energía que estos dispositivos deben encenderse de uno en uno, en secuencia con otros dispositivos de este tipo, para evitar sobrecargar la fuente de alimentación. El administrador de energía garantiza que solo un IRP de entrada de energía esté activo en cualquier parte del sistema en un momento dado.
A partir de Windows Vista, los controladores pueden establecer la marca DO_POWER_PAGABLE y la marca DO_POWER_INRUSH. En Windows Server 2003, Windows XP y Windows 2000, los controladores no pueden establecer la marca DO_POWER_PAGABLE y la marca DO_POWER_INRUSH.