Compartilhar via


IRP_MJ_CLOSE

Cada driver deve lidar com solicitações próximas em uma rotina DispatchClose , com a possível exceção de um driver cujo dispositivo não pode ser desabilitado ou removido do computador sem derrubar o sistema. Um driver de disco cujo dispositivo contém o arquivo de página do sistema é um exemplo desse driver. Observe que o driver desse dispositivo também não pode ser descarregado dinamicamente.

Quando enviado

O recebimento dessa solicitação indica que o último identificador do objeto de arquivo associado ao objeto de dispositivo de destino foi fechado e liberado. Todas as solicitações de E/S pendentes foram concluídas ou canceladas.

Parâmetros de Entrada

Nenhum

Parâmetros de saída

Nenhum

Operação

Muitos drivers intermediários e de dispositivo simplesmente definem STATUS_SUCCESS no bloco status de E/S do IRP e concluem a solicitação de fechamento. No entanto, o que um determinado driver faz no recebimento de uma solicitação próxima depende do design do driver. Em geral, um driver deve desfazer todas as ações que tomar no recebimento da solicitação de IRP_MJ_CREATE . Os drivers de dispositivo cujos objetos de dispositivo são exclusivos, como um driver serial, também podem redefinir o hardware após o recebimento de uma solicitação de fechamento.

A solicitação IRP_MJ_CLOSE não é necessariamente enviada no contexto do processo que fechou o identificador do objeto de arquivo. Se o driver precisar liberar recursos específicos do processo, como a memória do usuário, que o driver bloqueou ou mapeou anteriormente, ele deverá fazer isso em resposta a uma solicitação de IRP_MJ_CLEANUP .

A solicitação de IRP_MJ_CLOSE sempre será enviada em PASSIVE_LEVEL.

Requisitos

parâmetro

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)

Confira também

DispatchClose

IRP_MJ_CLEANUP

IRP_MJ_CREATE