Partager via


Exemple de demande d’E/S - Vue d’ensemble

La figure suivante montre une vue d’ensemble de ce qui se passe lorsqu’un sous-système ouvre un objet file représentant un fichier de données pour le compte d’une application.

diagramme illustrant l’ouverture d’un objet fichier.

  1. Le sous-système appelle un service système d’E/S pour ouvrir un fichier nommé.

  2. Le gestionnaire d’E/S appelle le gestionnaire d’objets pour rechercher le fichier nommé et l’aider à résoudre les liens symboliques pour l’objet fichier. Il appelle également le moniteur de référence de sécurité pour case activée que le sous-système dispose des droits d’accès appropriés pour ouvrir cet objet de fichier.

  3. Si le volume n’est pas encore monté, le gestionnaire d’E/S suspend temporairement la demande ouverte et appelle un ou plusieurs systèmes de fichiers jusqu’à ce que l’un d’entre eux reconnaisse l’objet fichier comme un objet qu’il a stocké sur l’un des périphériques de stockage de masse que le système de fichiers utilise. Lorsque le système de fichiers a monté le volume, le gestionnaire d’E/S reprend la demande.

  4. Le gestionnaire d’E/S alloue de la mémoire pour et initialise un IRP pour la requête ouverte. Pour les pilotes, une ouverture équivaut à une requête « créer ».

  5. Le gestionnaire d’E/S appelle le pilote du système de fichiers, en lui transmettant l’IRP. Le pilote du système de fichiers accède à son emplacement de pile d’E/S dans l’IRP pour déterminer l’opération qu’il doit effectuer, vérifie les paramètres, détermine si le fichier demandé est dans le cache et, dans le cas contraire, configure l’emplacement de la pile d’E/S du pilote inférieur suivant dans l’IRP.

  6. Les deux pilotes traitent l’IRP et effectuent l’opération d’E/S demandée, en appelant les routines de prise en charge en mode noyau fournies par le gestionnaire d’E/S et par d’autres composants système (non illustrés dans la figure précédente).

  7. Les pilotes retournent l’IRP au gestionnaire d’E/S avec le bloc de status d’E/S défini dans l’IRP pour indiquer si l’opération demandée a réussi ou pourquoi elle a échoué.

  8. Le gestionnaire d’E/S obtient les status d’E/S à partir de l’IRP, de sorte qu’il peut retourner status informations via le sous-système protégé à l’appelant d’origine.

  9. Le gestionnaire d’E/S libère l’IRP terminée.

  10. Le gestionnaire d’E/S retourne un handle pour l’objet fichier au sous-système si l’opération d’ouverture a réussi. En cas d’erreur, elle retourne les status appropriées au sous-système.

Une fois qu’un sous-système a ouvert correctement un objet fichier qui représente un fichier de données, un appareil ou un volume, le sous-système utilise le handle retourné pour identifier l’objet fichier dans les demandes suivantes d’opérations d’E/S de périphérique (généralement des demandes de contrôle d’E/S de périphérique en lecture, en écriture ou en lecture). Pour effectuer une telle demande, le sous-système appelle les services système d’E/S. Le gestionnaire d’E/S achemine ces demandes en tant que runtimes d’intégration envoyés aux pilotes appropriés.