Share via


FSCTL_REQUEST_OPLOCK_LEVEL_2 IOCTL (winioctl.h)

Richiede un blocco opportunistico di livello 2 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_2,     // 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 da server remoti non devono richiederle direttamente, ovvero il redirector 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 tramite 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 in cui è possibile modificare il tipo di oplock (l'handle non deve essere chiuso e riaperto), usare il codice di controllo FSCTL_REQUEST_OPLOCK .

Usare FSCTL_REQUEST_OPLOCK_LEVEL_2 per richiedere un blocco opportunistico di livello 2 in un file. Un file system client può memorizzare nella cache i dati letti (ma non scrivere dati) in locale, purché il blocco di livello 2 venga mantenuto.

Il file system non richiede alcun riconoscimento dall'applicazione che ha richiesto il blocco opportunistico di livello 2 quando il blocco viene interrotto. Dopo l'interruzione del blocco, il redirector di rete riceve una notifica per non considerare validi i dati memorizzati nella cache dal file. Per altre informazioni, vedere Interruzione di oplock.

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_2 ha esito negativo se il file viene aperto in modalità non sovrapposta (sincrona).

Per le implicazioni dell'I/O sovrapposto 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 di scalabilità orizzontale (SO) No
File system del volume condiviso cluster (CsvFS)
Resilient File System (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