Compartir a través de


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):

Diagrama de flujo que ilustra la secuencia de apagado y eliminación de un controlador de bus KMDF, empezando por un dispositivo operativo 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.