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) |