Partager via


Types d’oplocks

Cet article décrit les types d’oplocks.

  • Quatre types oplock sont actuels.
  • Quatre types oplock sont considérés comme hérités.

Oplocks hérités

Les quatre oplocks suivants ont été implémentés dans Windows NT 3.1 (Niveau 1, Niveau 2, Batch) et Windows 2000 (Filtre), et sont considérés comme des « oplocks hérités » :

  • Un oplock de niveau 1 (exclusif) permet à un client d’ouvrir un flux pour un accès exclusif et d’effectuer une mise en mémoire tampon arbitraire. Cet oplock prend en charge la mise en cache en lecture du client et la mise en cache en écriture.

  • Un oplock de niveau 2 (partagé) indique qu’il existe plusieurs lecteurs d’un flux et aucun rédacteur. Cet oplock prend en charge la mise en cache de lecture du client.

  • Un oplock Batch (exclusif) permet à un client de conserver un flux ouvert sur le serveur même si l’accesseur local sur l’ordinateur client a fermé le flux. Cet oplock prend en charge les scénarios où le client doit ouvrir et fermer à plusieurs reprises le même fichier, par exemple pendant l’exécution de script par lots. Il prend en charge la mise en cache en lecture du client, la mise en cache en écriture et la gestion de la mise en cache.

  • Un oplock de filtre (exclusif) permet aux applications et aux pilotes de filtre du système de fichiers qui ouvrent et lisent des données de flux de manière à « reculer » lorsque d’autres applications, clients ou les deux tentent d’accéder au même flux. Cet oplock prend en charge la mise en cache en lecture du client et la mise en cache en écriture.

Oplocks « Windows 7 » actuels

Les oplocks suivants ont été ajoutés dans Windows 7 et sont donc collectivement appelés « oplocks Windows 7 » :

  • Un oplock En lecture (R) (partagé) indique qu’il existe plusieurs lecteurs d’un flux et qu’il n’y a pas d’enregistreurs. Cet oplock prend en charge la mise en cache de lecture du client.

  • Un oplock en lecture-handle (RH) (partagé) indique qu’il existe plusieurs lecteurs d’un flux, qu’il n’y a pas d’enregistreurs et qu’un client peut conserver un flux ouvert sur le serveur même si l’accesseur local sur l’ordinateur client a fermé le flux. Cet oplock prend en charge la mise en cache en lecture du client et gère la mise en cache.

  • Un oplock en lecture-écriture (RW) (exclusif) permet à un client d’ouvrir un flux pour un accès exclusif et permet au client d’effectuer une mise en mémoire tampon arbitraire. Cet oplock prend en charge la mise en cache en lecture du client et la mise en cache en écriture.

  • Un oplock RWH ( Read-Write-Handle ) (exclusif) permet à un client de conserver un flux ouvert sur le serveur même si l’accesseur local sur l’ordinateur client a fermé le flux. Cet oplock prend en charge la mise en cache en lecture du client, la mise en cache en écriture et la gestion de la mise en cache.

Certains oplocks hérités peuvent sembler similaires aux oplocks Windows 7. En particulier, R semble similaire au niveau 2, RW semble similaire au niveau 1, et RWH semble similaire à Batch. Mais ils sont vraiment différents. Les oplocks Windows 7 ont été ajoutés à :

  • Offrir une plus grande flexibilité à l’appelant pour exprimer ses intentions de mise en cache.
  • Autoriser les sauts et les mises à niveau oplock ; autrement dit, pour permettre la modification de l’état oplock d’un niveau à un niveau de mise en cache supérieur (par exemple, la mise à niveau d’un oplock en lecture vers un oplock Read-Write).

Cette flexibilité n’est pas réalisable avec les oplocks hérités.