Solicitação de E/S de exemplo – uma visão geral
A figura a seguir mostra uma visão geral do que acontece quando um subsistema abre um objeto de arquivo que representa um arquivo de dados em nome de um aplicativo.
O subsistema chama um serviço de sistema de E/S para abrir um arquivo nomeado.
O gerenciador de E/S chama o gerenciador de objetos para pesquisar o arquivo nomeado e ajudá-lo a resolve links simbólicos para o objeto de arquivo. Ele também chama o monitor de referência de segurança para marcar que o subsistema tem os direitos de acesso corretos para abrir esse objeto de arquivo.
Se o volume ainda não estiver montado, o gerenciador de E/S suspenderá a solicitação aberta temporariamente e chamará um ou mais sistemas de arquivos até que um deles reconheça o objeto de arquivo como algo armazenado em um dos dispositivos de armazenamento em massa que o sistema de arquivos usa. Quando o sistema de arquivos montar o volume, o gerenciador de E/S retomará a solicitação.
O gerenciador de E/S aloca memória para e inicializa um IRP para a solicitação aberta. Para drivers, uma abertura é equivalente a uma solicitação "criar".
O gerenciador de E/S chama o driver do sistema de arquivos, passando-o para o IRP. O driver do sistema de arquivos acessa seu local de pilha de E/S no IRP para determinar qual operação deve executar, verifica parâmetros, determina se o arquivo solicitado está em cache e, caso contrário, configura o local da pilha de E/S do driver mais baixo no IRP.
Ambos os drivers processam o IRP e concluem a operação de E/S solicitada, chamando rotinas de suporte do modo kernel fornecidas pelo gerenciador de E/S e por outros componentes do sistema (não mostrados na figura anterior).
Os drivers retornam o IRP para o gerenciador de E/S com o bloco de E/S status definido no IRP para indicar se a operação solicitada foi bem-sucedida ou por que ela falhou.
O gerente de E/S obtém o status de E/S do IRP, para que ele possa retornar status informações por meio do subsistema protegido para o chamador original.
O gerenciador de E/S libera o IRP concluído.
O gerenciador de E/S retornará um identificador para o objeto de arquivo para o subsistema se a operação aberta tiver sido bem-sucedida. Se houver um erro, ele retornará as status apropriadas para o subsistema.
Depois que um subsistema abre com êxito um objeto de arquivo que representa um arquivo de dados, um dispositivo ou um volume, o subsistema usa o identificador retornado para identificar o objeto de arquivo em solicitações subsequentes para operações de E/S do dispositivo (geralmente solicitações de controle de E/S de dispositivo, gravação ou leitura). Para fazer essa solicitação, o subsistema chama serviços do sistema de E/S. O gerenciador de E/S roteia essas solicitações como IRPs enviados aos drivers apropriados.