FSCTL_REQUEST_FILTER_OPLOCK IOCTL (winioctl.h)

Richiede un blocco opportunistico del filtro in un file.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_REQUEST_FILTER_OPLOCK,      // 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_FILTER_OPLOCK per richiedere un blocco opportunistico del filtro in un file. Un file system client può memorizzare nella cache i dati letti e gestire i dati in locale, purché il blocco del filtro venga mantenuto, ma solo un client può contenere il blocco alla volta.

Il proprietario del filtro oplock deve confermare un'interruzione di oplock (vedere Interruzione dei blocchi opportunistici) prima che qualsiasi operazione incompatibile con un oplock di filtro possa essere eseguita su un altro handle. 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 Tipi di blocchi opportunistici.

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

Un codice di controllo FSCTL_REQUEST_FILTER_OPLOCK 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

   
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