Compartilhar via


FSCTL_OPBATCH_ACK_CLOSE_PENDING IOCTL (winioctl.h)

Notifica um servidor de que um aplicativo cliente está pronto para fechar um arquivo. Use essa operação após a notificação de que um bloqueio oportunista em um arquivo está pronto para ser interrompido.

Para executar essa operação, chame a função DeviceIoControl usando os parâmetros a seguir.

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
);

Comentários

Antes de chamar essa função, não faça suposições sobre o número de canais virtuais disponíveis, pois o sistema e outros plug-ins podem ter canais virtuais reservados. Sempre marcar para um código de retorno CHANNEL_RC_TOO_MANY_CHANNELS depois de chamar essa função.

Para obter as implicações de E/S sobreposta nesta operação, consulte a seção Comentários do tópico DeviceIoControl .

Use o código de controle FSCTL_OPBATCH_ACK_CLOSE_PENDING quando for notificado de que um bloqueio oportunista em um arquivo está pronto para ser interrompido e você pretende fechar o arquivo em breve. Esta operação não solicita um novo bloqueio oportunista.

Se você não pretende fechar um arquivo, pode usar o código de controle FSCTL_OPLOCK_BREAK_ACKNOWLEDGE ou FSCTL_OPLOCK_BREAK_ACK_NO_2 para responder à notificação. O primeiro, usado se o bloqueio que está sendo quebrado é um bloqueio oportunista exclusivo, indica que o arquivo deve receber um bloqueio oportunista de nível 2. Este último solicita que o arquivo seja mantido aberto, mas perde todo o bloqueio.

Os aplicativos são notificados de que um bloqueio oportunista é interrompido usando o membro hEvent da estrutura OVERLAPPED associada a um arquivo no qual um bloqueio oportunista é quebrado. Os aplicativos também podem usar funções como GetOverlappedResult e HasOverlappedIoCompleted.

No Windows 8 e no Windows Server 2012, esse código é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Não
TFO (Failover transparente) do SMB 3.0 Não
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Não
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho winioctl.h (inclua Windows.h)

Confira também