Compartilhar via


IRP_MJ_CLEANUP

Os drivers que mantêm informações de contexto específicas do processo devem lidar com solicitações de limpeza em rotinas DispatchCleanup .

Quando enviado

O recebimento dessa solicitação indica que o último identificador de um objeto de arquivo associado ao objeto de dispositivo de destino foi fechado (mas, devido a solicitações de E/S pendentes, pode não ter sido liberado).

Parâmetros de Entrada

Nenhum

Parâmetros de saída

Nenhum

Operação

Esse IRP é enviado no contexto do processo que fechou o identificador do objeto de arquivo. Portanto, o driver deve liberar recursos específicos do processo, como memória do usuário, que o driver bloqueou ou mapeou anteriormente.

Se os objetos de dispositivo do driver foram configurados como exclusivos, para que apenas um único thread possa usar o dispositivo por vez, o driver deverá concluir cada IRP atualmente enfileirado no objeto do dispositivo de destino e definir STATUS_CANCELLED no bloco de E/S de cada IRP status.

Caso contrário, o driver deve cancelar e concluir apenas os IRPs atualmente enfileirados associados ao identificador de objeto de arquivo que está sendo liberado. (Um ponteiro para o objeto de arquivo está localizado no membro FileObject do IO_STACK_LOCATION do driver do IRP.) Depois de cancelar esses IRPs na fila, o driver conclui o IRP de limpeza e define STATUS_SUCCESS em seu bloco de status de E/S.

Para obter mais informações sobre como lidar com essa solicitação, consulte Rotinas dispatchCleanup.

Requisitos

parâmetro

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

Confira também

DispatchCleanup

IO_STACK_LOCATION

IRP_MJ_CLOSE