Compartilhar via


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)

Confira também

IoCreateDevice

IoDisconnectInterrupt