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