IRP_MN_REMOVE_DEVICE

Todos los controladores PnP deben controlar este IRP.

Valor

0x02

Código principal

IRP_MJ_PNP

Cuándo se envió

El administrador de PnP usa este IRP para dirigir los controladores para quitar la representación de software de un dispositivo (objetos de dispositivo, etc.). El administrador de PnP envía este IRP cuando un dispositivo se ha quitado de forma ordenada (por ejemplo, iniciado por un usuario en el programa Desconectar o expulsar hardware), por sorpresa (un usuario extrae el dispositivo de su ranura sin previo aviso) o cuando el usuario solicita actualizar controladores.

En los sistemas Windows 2000 y versiones posteriores, el administrador de PnP también envía este IRP si uno de los controladores de la pila de dispositivos produce un error en una solicitud de IRP_MN_START_DEVICE para el dispositivo.

Para una eliminación ordenada de dispositivos, el administrador de PnP envía un IRP_MN_QUERY_REMOVE_DEVICE antes de quitar IRP. En este caso, el dispositivo está en estado remove-pending cuando llega el IRP de eliminación. Para una eliminación de dispositivos sorpresa en Microsoft Windows 2000 o posterior, el administrador de PnP envía un IRP_MN_SURPRISE_REMOVAL antes de quitar IRP. En este caso, el dispositivo se encuentra en estado de sorpresa quitado cuando llega el IRP de eliminación. Los controladores también pueden recibir una eliminación de IRP antes de iniciar un dispositivo. En este caso, el dispositivo está en estado no iniciado cuando llega el IRP.

El administrador de PnP envía este IRP a IRQL PASSIVE_LEVEL en el contexto de un subproceso del sistema.

Parámetros de entrada

Ninguno

Parámetros de salida

Ninguno

Bloque de estado de entrada/salida

Un controlador debe establecer Irp-IoStatus.Status> en STATUS_SUCCESS. Los controladores no deben producir un error en este IRP.

Operación

Este IRP se controla primero por el controlador en la parte superior de la pila del dispositivo y, a continuación, por cada controlador inferior de la pila.

En respuesta a este IRP, los controladores realizan tareas como apagar el dispositivo, quitar la representación de software del dispositivo (objetos de dispositivo, etc.) y liberar los recursos del dispositivo.

Para obtener más información sobre el control de este IRP, consulte Control de una solicitud de IRP_MN_REMOVE_DEVICE. Para obtener información general sobre cómo admitir la eliminación de dispositivos, consulte Eliminación de un dispositivo.

Envío de este IRP

Reservado para uso del sistema. Los controladores no deben enviar este IRP.

Si un controlador de autobús detecta que uno (o varios) de sus dispositivos secundarios (PDO secundarios) se ha quitado físicamente del equipo, el controlador de bus llama a IoInvalidateDeviceRelations para notificar el cambio al administrador de PnP. A continuación, el administrador de PnP envía la eliminación de IRP para cualquier dispositivo que haya desaparecido.

Requisitos

Encabezado

Wdm.h (incluya Wdm.h, Ntddk.h o Ntifs.h)

Consulte también

IoInvalidateDeviceRelations

IoRegisterPlugPlayNotification

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL