Partager via


Synchronisation des oplocks

Les filtres et les systèmes de fichiers qui demandent des verrous opportunistes exclusifs (oplocks) doivent synchroniser les appels dans le package oplock fourni par le système. En particulier, les appels aux routines FSCTRL pour établir des oplocks doivent être synchronisés avec les appels aux routines de vérification et déblocage des oplocks. Voici une liste des deux ensembles de routines :

Lors du traitement d’une demande oplock, les filtres et les systèmes de fichiers doivent garantir les éléments suivants :

  • Les E/S qui peuvent interrompre un oplock ne peuvent pas se produire en parallèle avec le traitement de la demande.
  • Les requêtes Oplock ne peuvent pas se produire simultanément avec les accusés de réception de rupture d’oplock.

Les appels IRP qui demandent la création d’oplocks exclusifs pour le même bloc de contrôle de fichier (FCB) sont les suivants :

Voici quelques exemples de synchronisation oplock :

  • Lors du traitement d’une demande oplock, un système de fichiers acquiert une ressource exclusivement, appelle FsRtlOplockFsctrlEx et libère la ressource.

  • Lors du traitement d’un accusé de réception d’arrêt d’oplock, le système de fichiers acquiert cette même ressource partagée, appelle FsRtlOplockFsctrlEx et libère la ressource.

  • Lorsque vous effectuez des E/S, le système de fichiers acquiert cette même ressource partagée, appelez FsRtlCheckOplockEx2, effectuez les E/S et relâchez la ressource.

    Les systèmes de fichiers supérieurs doivent s’assurer qu’ils se synchronisent entre les appels de FsRtlCheckUpperOplock et FsRtlUpperOplockFsctrl de la même manière.