Partilhar via


Tipos de oplocks

Este artigo descreve os tipos de oplocks.

  • Quatro tipos de oplock estão em uso.
  • Quatro tipos de oplock são considerados legados.

Oplocks (bloqueios) legados

Os quatro oplocks a seguir foram implementados no Windows NT 3.1 (Nível 1, Nível 2, Lote) e Windows 2000 (Filtro), e são considerados "oplocks herdados":

  • Um oplock de Nível 1 (exclusivo) permite que um cliente abra um fluxo para acesso exclusivo e execute buffering arbitrário. Este oplock suporta cache de leitura e de escrita do cliente.

  • Um oplock de Nível 2 (partilhado) indica que há vários leitores de um fluxo e nenhum escritor. Este oplock suporta cache de leitura do cliente.

  • Um Batch oplock (exclusivo) permite que um cliente mantenha um fluxo aberto no servidor, mesmo que o acesso local na máquina cliente tenha fechado o fluxo. Esse oplock suporta cenários em que o cliente precisa abrir e fechar repetidamente o mesmo arquivo, como durante a execução de script em lote. Ele suporta cache de leitura de cliente, cache de gravação e cache de manipulação.

  • Um oplock de filtro (exclusivo) permite que aplicativos e drivers de filtro do sistema de arquivos que abrem e leem dados de fluxo tenham uma forma de "reverter" quando outros aplicativos, clientes ou ambos tentam acessar o mesmo fluxo. Este oplock suporta cache de leitura e cache de gravação do cliente.

Oplocks atuais do "Windows 7"

Os seguintes oplocks foram adicionados no Windows 7 e, portanto, são coletivamente conhecidos como "oplocks do Windows 7":

  • Um oplock Read (R) (partilhado) indica que há vários leitores de um fluxo de dados e nenhum gravador. Este oplock suporta o armazenamento em cache de leitura do cliente.

  • Um oplock Read-Handle (RH) (compartilhado) indica que há vários leitores de um fluxo, sem gravadores, e que um cliente pode manter um fluxo aberto no servidor mesmo que o acessador local na máquina cliente tenha fechado o fluxo. Este oplock suporta cache de leitura de cliente e cache de manipulação.

  • Um oplock de leitura-gravação (RW) (exclusivo) permite que um cliente abra um fluxo de dados para acesso exclusivo, permitindo também que o cliente realize operações de armazenamento em buffer de forma arbitrária. Este oplock suporta a cache de leitura e a cache de gravação do cliente.

  • Um oplock Read-Write-Handle (RWH) (exclusivo) permite que um cliente mantenha um fluxo aberto no servidor, mesmo que o acessador local na máquina cliente tenha fechado o fluxo. Este oplock suporta cache de leitura do cliente, cache de gravação e cache de manuseamento.

Alguns oplocks herdados podem parecer semelhantes aos oplocks do Windows 7. Em particular, R parece semelhante ao Nível 2, RW parece semelhante ao Nível 1, e RWH parece semelhante ao Batch. Mas eles são realmente diferentes. Os oplocks do Windows 7 foram adicionados a:

  • Fornecer maior flexibilidade ao chamador para expressar intenções de armazenamento em cache.
  • Permitir quebras e atualizações de oplock; ou seja, permitir a modificação do estado oplock de um nível para um nível de cache maior (por exemplo, atualizando um oplock de leitura para um oplock Read-Write).

Essa flexibilidade não pode ser alcançada com os oplocks antigos.