Función IoDeleteDevice (wdm.h)
La rutina IoDeleteDevice quita un objeto de dispositivo del sistema, por ejemplo, cuando se quita el dispositivo subyacente del sistema.
Sintaxis
void IoDeleteDevice(
[in] PDEVICE_OBJECT DeviceObject
);
Parámetros
[in] DeviceObject
Puntero al objeto de dispositivo que se va a eliminar.
Valor devuelto
Ninguno
Observaciones
Al controlar una solicitud de IRP_MN_REMOVE_DEVICE PnP, un controlador PnP llama a IoDeleteDevice para eliminar los objetos de dispositivo asociados. Consulte Control de una solicitud de IRP_MN_REMOVE_DEVICE para obtener más información.
Un controlador heredado debe llamar a esta rutina cuando se descarga o cuando su DriverEntry rutina encuentra un error de inicialización irrecuperable, como no poder inicializar correctamente un dispositivo físico. También se llama a esta rutina cuando un controlador vuelve a configurar sus dispositivos dinámicamente. Por ejemplo, un controlador de disco llamado para volver a particionar un disco llamaría a IoDeleteDevice para anular los objetos de dispositivo que representan las particiones que se van a reemplazar.
Un controlador debe liberar determinados recursos para los que el controlador proporcionó almacenamiento en su extensión de dispositivo antes de llamar a IoDeleteDevice. Por ejemplo, si el controlador almacena el puntero a sus objetos de interrupción en la extensión del dispositivo, debe llamar a IoDisconnectInterrupt antes de llamar a IoDeleteDevice.
Un controlador puede llamar a IoDeleteDevice solo una vez para un objeto de dispositivo determinado.
Cuando un controlador llama a ioDeleteDevice, el administrador de E/S elimina el objeto de dispositivo de destino si no hay referencias pendientes a él. Sin embargo, si quedan referencias pendientes, el administrador de E/S marca el objeto de dispositivo como "eliminar pendiente" y elimina el objeto de dispositivo cuando se liberan las referencias.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 2000. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | <= APC_LEVEL |
reglas de cumplimiento de DDI | DeleteDevice(wdm), HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm) |