Power-Down y secuencia de eliminación de un controlador de bus
En la ilustración siguiente se muestra el orden en el que el marco llama a las funciones de devolución de llamada de eventos del controlador de bus KMDF al apagar y quitar un dispositivo conectado al bus. La secuencia comienza en la parte superior de la figura con un dispositivo operativo que se encuentra en estado de alimentación de trabajo (D0):
El marco no elimina el PDO hasta que el dispositivo se quita físicamente del sistema. Por ejemplo, si un usuario deshabilita el dispositivo en Administrador de dispositivos o lo detiene en la utilidad Quitar hardware de forma segura, pero no quita físicamente el dispositivo, el marco conserva el PDO. Si el dispositivo se vuelve a habilitar posteriormente, el marco usa el mismo PDO y comienza la secuencia de inicio llamando a la devolución de llamada EvtDevicePrepareHardware , como se muestra en Secuencia de encendido para un objeto de dispositivo físico.
Nota: Normalmente, el marco llama a la función de devolución de llamada EvtDeviceReleaseHardware del controlador de bus después de llamar a la función EvtDeviceReleaseHardware para todos los dispositivos secundarios que el controlador enumera. En caso de que el elemento primario encuentre un error de encendido o apagado del dispositivo, el marco podría llamar al evtDeviceReleaseHardware del controlador antes de llamar a las funciones EvtDeviceReleaseHardware para todos los dispositivos secundarios. Considere la posibilidad de llamar a WdfDeviceInitSetReleaseHardwareOrderOnFailure para asegurarse de que el marco llama a la devolución de llamada EvtDeviceReleaseHardware del controlador bus solo después de que se hayan quitado todos los dispositivos secundarios.