FSCTL_OPBATCH_ACK_CLOSE_PENDING IOCTL (winioctl.h)

Notifica a un server che un'applicazione client è pronta per chiudere un file. Usare questa operazione dopo la notifica che un blocco opportunistico in un file è pronto per essere interrotto.

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

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

Commenti

Prima di chiamare questa funzione, non fare ipotesi sul numero di canali virtuali disponibili, perché il sistema e altri plug-in potrebbero avere canali virtuali riservati. Verificare sempre la presenza di un CHANNEL_RC_TOO_MANY_CHANNELS codice restituito dopo aver chiamato questa funzione.

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

Usare il codice di controllo FSCTL_OPBATCH_ACK_CLOSE_PENDING quando si riceve una notifica che un blocco opportunistico su un file è pronto per essere interrotto e si prevede di chiudere il file a breve. Questa operazione non richiede un nuovo blocco opportunistico.

Se non si intende chiudere un file, è possibile usare il codice di controllo FSCTL_OPLOCK_BREAK_ACKNOWLEDGE o FSCTL_OPLOCK_BREAK_ACK_NO_2 per rispondere alla notifica. Il primo, usato se il blocco interrotto è un blocco opportunistico esclusivo, indica che il file deve ricevere invece un blocco opportunistico di livello 2. Quest'ultimo richiede che il file venga mantenuto aperto, ma perde tutto il blocco.

Le applicazioni ricevono una notifica che indica che un blocco opportunistico viene interrotto utilizzando il membro hEvent della struttura OVERLAPPED associata a un file in cui viene interrotto un blocco opportunistico. Le applicazioni possono anche usare funzioni come GetOverlappedResult e HasOverlappedIoCompleted.

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