Partager via


Vérification des indicateurs dans l’objet Device

Pour chaque IRP demandant une opération d’E/S vers/à partir d’un média amovible, un pilote de périphérique de média amovible doit déterminer si DO_VERIFY_VOLUME est déjà défini dans ses indicateurs DeviceObject-Flags>. Si cette valeur est définie, le pilote doit effectuer les opérations suivantes :

  • Pour les requêtes IRP_MJ_READ, IRP_MJ_WRITE et IRP_MJ_DEVICE_CONTROL, case activée si SL_OVERRIDE_VERIFY_VOLUME est défini dans le membre Indicateurs de la structure de IO_STACK_LOCATION du pilote. Si tel est le cas, poursuivez l’opération demandée.

    Les demandes de contrôle d’appareil qui retournent des informations sur la structure logique du support sous-jacent ont SL_OVERRIDE_VERIFY_VOLUME définies dans le membre Indicateurs de l’emplacement de la pile d’E/S lorsqu’un SIS monte ou remonte un volume de média amovible.

  • Dans le cas contraire, le pilote doit refuser d’effectuer des demandes d’E/S pour le lecteur, l’appareil ou la partition correspondants alors que DO_VERIFY_VOLUME est défini dans ses indicateurs DeviceObject>. Un pilote de média amovible doit échouer aux irps envoyés à l’appareil correspondant jusqu’à ce que le FSD efface DO_VERIFY_VOLUME dans les indicateurs DeviceObject-Flags> du pilote de média amovible.

Si un pilote de périphérique de média amovible n’échoue pas aux irPs lorsque DO_VERIFY_VOLUME est défini et que SL_OVERRIDE_VERIFY_VOLUME n’est pas défini pour les demandes de transfert précédentes, le système de fichiers ne peut pas maintenir l’intégrité des données de fichier mises en cache ni demander à l’utilisateur de remonter le média qui contient un fichier ouvert.