Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O gerenciador de E/S fornece suporte de E/S assíncrona para que o originador de uma solicitação de E/S (geralmente um aplicativo de modo de usuário, mas às vezes outro driver) possa continuar executando, em vez de esperar que sua solicitação de E/S seja concluída. O suporte a E/S assíncronas melhora a taxa de transferência geral do sistema e o desempenho de qualquer código que faça uma solicitação de E/S.
Com suporte a E/S assíncronas, os drivers de modo kernel não processam necessariamente solicitações de E/S na mesma ordem em que foram enviadas para o gerenciador de E/S. O gerente de E/S, ou um driver de nível superior, pode reordenar solicitações de E/S à medida que são recebidas. Um driver pode dividir uma solicitação de transferência de dados grande em solicitações de transferência menores. Além disso, um driver pode sobrepor o processamento de solicitações de E/S, particularmente em uma plataforma multiprocessador simétrica, como mencionado em Multiprocessor-Safe.
Além disso, o processamento de uma solicitação de E/S individual por um driver em modo kernel não é necessariamente serializado. Ou seja, um driver não necessariamente processa cada IRP até a conclusão antes de começar a processar a próxima solicitação de E/S de entrada.
Quando um controlador recebe um IRP, ele responde realizando o máximo de processamento específico de IRP que conseguir. Se o driver suporta processamento de IRP assíncrono, ele pode enviar um IRP para o próximo driver, se necessário, e começar a processar o próximo IRP sem esperar que o primeiro seja concluído. O driver pode registrar uma "rotina de conclusão", que o gerente de E/S chama quando outro driver termina de processar um IRP. Os drivers fornecem um valor de status no bloco de status de E/S do IRP, que outros drivers podem acessar para determinar o status de uma solicitação de E/S.
Os drivers podem manter informações de estado sobre as suas operações de E/S atuais em uma parte especial dos seus objetos de dispositivo, chamada extensão de dispositivo.
Para obter mais informações, consulte Manipulando IRPs e técnicas de entrada/saída.