Condividi tramite


Tipi di oplock

Questo articolo descrive i tipi di oplock.

  • Quattro tipi di oplock sono correnti.
  • Quattro tipi di oplock sono considerati legacy.

Operazioni di oplock legacy

I quattro oplock seguenti sono stati implementati in Windows NT 3.1 (Livello 1, Livello 2, Batch) e Windows 2000 (Filtro) e sono considerati "oplock legacy":

  • Un oplock di livello 1 (esclusivo) consente a un client di aprire un flusso per l'accesso esclusivo e di eseguire buffer arbitrari. Questo oplock supporta la memorizzazione nella cache e la memorizzazione nella cache in lettura client.

  • Un oplock di livello 2 (condiviso) indica che sono presenti più lettori di un flusso e nessun writer. Questo oplock supporta la memorizzazione nella cache di lettura client.

  • Un blocco batch (esclusivo) consente a un client di mantenere aperto un flusso sul server anche se la funzione di accesso locale nel computer client ha chiuso il flusso. Questo oplock supporta scenari in cui il client deve aprire ripetutamente e chiudere lo stesso file, ad esempio durante l'esecuzione di script batch. Supporta la memorizzazione nella cache di lettura client, la memorizzazione nella cache di scrittura e la memorizzazione nella cache.

  • Un oplock filtro (esclusivo) consente alle applicazioni e ai driver di filtro del file system che aprono e leggeno i dati di flusso in modo da "eseguire il backout" quando altre applicazioni, client o entrambi tentano di accedere allo stesso flusso. Questo oplock supporta la memorizzazione nella cache e la memorizzazione nella cache in lettura client.

Operazioni di oplock correnti "Windows 7"

I seguenti oplock sono stati aggiunti in Windows 7 e quindi sono noti collettivamente come "Windows 7 oplocks":

  • Un oplock di lettura (R) (condiviso) indica che sono presenti più lettori di un flusso e nessun writer. Questo oplock supporta la memorizzazione nella cache di lettura client.

  • Un oplock di gestione di lettura (RH) (condiviso) indica che sono presenti più lettori di un flusso, nessun writer e che un client può mantenere aperto un flusso sul server anche se la funzione di accesso locale nel computer client ha chiuso il flusso. Questo oplock supporta la memorizzazione nella cache e la memorizzazione nella cache in lettura client.

  • Un oplock di lettura-scrittura (rw) (esclusivo) consente a un client di aprire un flusso per l'accesso esclusivo e consente al client di eseguire il buffer arbitrario. Questo oplock supporta la memorizzazione nella cache e la memorizzazione nella cache in lettura client.

  • Un oplock RWH ( Read-Write-Handle ) (esclusivo) consente a un client di mantenere aperto un flusso sul server anche se la funzione di accesso locale nel computer client ha chiuso il flusso. Questo oplock supporta la memorizzazione nella cache di lettura client, la memorizzazione nella cache di scrittura e la memorizzazione nella cache.

Alcuni oplock legacy potrebbero sembrare simili agli oplock di Windows 7. In particolare, R sembra simile a Livello 2, RW sembra simile al livello 1 e RWH sembra simile a Batch. Ma sono davvero diversi. I blocchi oplock di Windows 7 sono stati aggiunti a:

  • Offrire una maggiore flessibilità per il chiamante per esprimere le intenzioni di memorizzazione nella cache.
  • Consenti interruzioni e aggiornamenti del blocco; ovvero, per consentire la modifica dello stato di oplock da un livello a un livello di memorizzazione nella cache maggiore, ad esempio l'aggiornamento di un oplock di lettura a un Read-Write oplock.

Questa flessibilità non è raggiungibile con gli oplock legacy.