Función IoDeleteDevice (wdm.h)

La rutina IoDeleteDevice quita un objeto de dispositivo del sistema, por ejemplo, cuando el dispositivo subyacente se quita 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

None

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 rutina DriverEntry 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 Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Reglas de cumplimiento de DDI DeleteDevice(wdm), HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm)

Consulte también

IoCreateDevice

IoDisconnectInterrupt