Condividi tramite


FSCTL_REQUEST_OPLOCK_LEVEL_1 IOCTL (winioctl.h)

Richiede un blocco opportunistico di livello 1 in un file.

Per eseguire questa operazione, chiamare la funzione DeviceIoControl usando i parametri seguenti.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_REQUEST_OPLOCK_LEVEL_1,     // dwIoControlCode
  NULL,                             // lpInBuffer
  0,                                // nInBufferSize
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Commenti

Questa operazione viene usata solo dalle applicazioni client che richiedono un blocco opportunistico da un server locale. Le applicazioni client che richiedono blocchi opportunistici dai server remoti non devono richiederli direttamente, il reindirizzamento di rete richiede in modo trasparente blocchi opportunistici per l'applicazione. Un tentativo di usare questa operazione per richiedere blocchi opportunistici dai server remoti comporterà la negazione della richiesta.

Se si desidera un nuovo tipo di oplock, l'handle deve essere chiuso e un nuovo handle riaperto usando CreateFile e DeviceIoControl deve essere chiamato sul nuovo handle con il codice di controllo FSCTL_REQUEST_OPLOCK desiderato_XXX . Per richiedere un oplock su un handle che può avere il tipo di oplock modificato sul posto (l'handle non deve essere chiuso e riaperto), usare il codice di controllo FSCTL_REQUEST_OPLOCK .

Usare FSCTL_REQUEST_OPLOCK_LEVEL_1 per richiedere un blocco opportunistico di livello 1 in un file. Un file system client può memorizzare nella cache i dati di lettura o scrittura in locale, purché il blocco di livello 1 venga mantenuto.

Il proprietario del oplock di livello 1 deve riconoscere un'interruzione di oplock (vedere Blocchi opportunistici di interruzione) prima di qualsiasi operazione incompatibile con un blocco di livello 1 può passare su un altro handle. Dopo l'interruzione del blocco, il reindirizzamento di rete non viene avvisato come dati memorizzati nella cache validi dal file.

Per altre informazioni, vedere Tipi di blocchi opportunistici.

Per un confronto dei vari codici di controllo oplock, vedere FSCTL_REQUEST_OPLOCK.

Un codice di controllo FSCTL_REQUEST_OPLOCK_LEVEL_1 ha esito negativo se il file viene aperto in modalità non sovrapposta (sincrona).

Per le implicazioni dell'I/O sovrapposta in questa operazione, vedere la sezione Osservazioni dell'argomento DeviceIoControl .

In Windows 8 e Windows Server 2012 questo codice è supportato dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
File system del volume condiviso del cluster (CsvFS)
File system resiliente (ReFS)

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winioctl.h (include Windows.h)

Vedi anche