Partilhar via


Escrevendo rotinas de retorno de chamada de pré-operação e postoperation

Em sua rotina DriverEntry , um driver de minifiltro pode registrar até uma rotina de retorno de chamada de pré-operação e até uma rotina de retorno de chamada de postoperation para cada tipo de operação de E/S que precisa filtrar.

Ao contrário de um driver de filtro do sistema de arquivos herdado, um driver de minifiltro pode escolher quais tipos de operações de E/S filtrar. Um driver de minifiltro pode registrar uma rotina de retorno de chamada de pré-operação para um determinado tipo de operação de E/S sem registrar um retorno de chamada de postoperation e vice-versa. O driver de minifiltro recebe apenas as operações de E/S para as quais registrou uma rotina de retorno de chamada de pré-operação ou operação de operação.

Uma rotina de retorno de chamada de pré-operação é semelhante a uma rotina de expedição no modelo de driver de filtro herdado. Quando o gerenciador de filtros processa uma operação de E/S, ele chama a rotina de retorno de chamada de pré-operação de cada driver de minifiltro na pilha de instâncias de driver de minifiltro que registrou uma para esse tipo de operação de E/S. O driver de minifiltro mais alto na pilha, ou seja, aquele cuja instância tem a altitude mais alta, recebe a operação primeiro. Quando esse driver de minifiltro termina de processar a operação, ele retorna a operação para o gerenciador de filtros, que passa a operação para o próximo driver de minifiltro mais alto e assim por diante. Quando todos os drivers de minifiltro na pilha de instâncias do driver de minifiltro processaram a operação de E/S, a menos que um driver de minifiltro tenha concluído a operação de E/S, o gerenciador de filtros envia a operação para filtros herdados e para o sistema de arquivos.

Uma rotina de retorno de chamada de postoperation é semelhante a uma rotina de conclusão no modelo de driver de filtro herdado. O processamento de conclusão de uma operação de E/S começa quando o gerenciador de E/S passa a operação para o sistema de arquivos e filtros herdados que registraram rotinas de conclusão para a operação. Após a conclusão dessas rotinas de conclusão, o gerenciador de filtros executa o processamento de conclusão para a operação. Em seguida, o gerenciador de filtros chama a rotina de retorno de chamada postoperation de cada driver de minifiltro na pilha de instâncias do driver de minifiltro que registrou um para esse tipo de operação de E/S. O driver de minifiltro inferior na pilha, ou seja, aquele cuja instância tem a altitude mais baixa, recebe a operação primeiro. Quando esse driver de minifiltro termina de processar a operação, ele a retorna para o gerenciador de filtros, que passa a operação para o próximo driver de minifiltro mais baixo e assim por diante.

Esta seção inclui:

Registrando rotinas de retorno de chamada de pré-operação e postoperation

Filtrando operações de E/S em um driver de minifiltro

Escrevendo rotinas de retorno de chamada de pré-operação

Escrevendo rotinas de retorno de chamada de postoperation

Modificando os parâmetros de uma operação de E/S

Determinando o método de buffer para uma operação de E/S

Acessando os buffers de usuário para uma operação de E/S