Função IoDeleteDevice (wdm.h)
A rotina IoDeleteDevice remove um objeto de dispositivo do sistema, por exemplo, quando o dispositivo subjacente é removido do sistema.
Sintaxe
void IoDeleteDevice(
[in] PDEVICE_OBJECT DeviceObject
);
Parâmetros
[in] DeviceObject
Ponteiro para o objeto do dispositivo a ser excluído.
Valor de retorno
Nenhum
Observações
Ao lidar com uma solicitação de IRP_MN_REMOVE_DEVICE PnP, um driver PnP chama IoDeleteDevice para excluir quaisquer objetos de dispositivo associados. Consulte Lidar com uma solicitação de IRP_MN_REMOVE_DEVICE para obter detalhes.
Um driver herdado deve chamar essa rotina quando ela estiver sendo descarregada ou quando seu DriverEntry rotina encontrar um erro fatal de inicialização, como não conseguir inicializar corretamente um dispositivo físico. Essa rotina também é chamada quando um driver reconfigura seus dispositivos dinamicamente. Por exemplo, um driver de disco chamado para reparticionar um disco chamaria IoDeleteDevice para derrubar os objetos do dispositivo que representam partições a serem substituídas.
Um driver deve liberar determinados recursos para os quais o driver forneceu armazenamento em sua extensão de dispositivo antes de chamar IoDeleteDevice. Por exemplo, se o driver armazenar o ponteiro para seus objetos de interrupção na extensão do dispositivo, ele deverá chamar IoDisconnectInterrupt antes de chamar IoDeleteDevice.
Um driver pode chamar IoDeleteDevice apenas uma vez para um determinado objeto de dispositivo.
Quando um driver chama IoDeleteDevice, o gerenciador de E/S exclui o objeto de dispositivo de destino se não houver referências pendentes a ele. No entanto, se quaisquer referências pendentes permanecerem, o gerenciador de E/S marcará o objeto do dispositivo como "excluir pendente" e excluirá o objeto do dispositivo quando as referências forem lançadas.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 2000. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
regras de conformidade de DDI | DeleteDevice(wdm), HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm) |