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.
Retornar valor
Nenhum
Comentários
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 Manipulando uma solicitação de IRP_MN_REMOVE_DEVICE para obter detalhes.
Um driver herdado deve chamar essa rotina quando ela está sendo descarregada ou quando sua rotina driverEntry encontra 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 alguma referência pendente permanecer, 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 |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Regras de conformidade de DDI | DeleteDevice(wdm), HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm) |