FSCTL_REQUEST_FILTER_OPLOCK IOCTL (winioctl.h)
Solicita um bloqueio oportunista de filtro em um arquivo.
Para executar essa operação, chame a função DeviceIoControl usando os parâmetros a seguir.
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
);
Comentários
Essa operação é usada apenas por aplicativos cliente que solicitam um bloqueio oportunista de um servidor local. Os aplicativos cliente que solicitam bloqueios oportunistas de servidores remotos não devem solicitá-los diretamente— o redirecionador de rede solicita de forma transparente bloqueios oportunistas para o aplicativo. Uma tentativa de usar essa operação para solicitar bloqueios oportunistas de servidores remotos resultará na negação da solicitação.
Se um novo tipo oplock for desejado, o identificador deverá ser fechado e um novo identificador reaberto usando CreateFile e DeviceIoControl deverá ser chamado no novo identificador com o código de controle FSCTL_REQUEST_OPLOCK_XXX desejado. Para solicitar um oplock em um identificador que possa ter o tipo oplock alterado no local (o identificador não precisa ser fechado e reaberto), use o código de controle FSCTL_REQUEST_OPLOCK .
Use FSCTL_REQUEST_FILTER_OPLOCK para solicitar um bloqueio oportunista de filtro em um arquivo. Um sistema de arquivos cliente pode armazenar em cache dados de leitura e manipular dados localmente, desde que o bloqueio de filtro seja mantido, mas apenas um cliente pode manter o bloqueio por vez.
O proprietário do filtro oplock deve reconhecer uma quebra de oplock (consulte Quebra de bloqueios oportunistas) antes que qualquer operação incompatível com um oplock de filtro possa passar em outro identificador. Depois que o bloqueio é interrompido, o redirecionador de rede é notificado para não considerar como válidos os dados armazenados em cache do arquivo.
Para obter mais informações, consulte Tipos de bloqueios oportunistas.
Para obter uma comparação dos vários códigos de controle oplock, consulte FSCTL_REQUEST_OPLOCK.
Um código de controle FSCTL_REQUEST_FILTER_OPLOCK falhará se o arquivo for aberto no modo não sobreposto (síncrono).
Para obter as implicações de E/S sobrepostas nessa operação, consulte a seção Comentários do tópico DeviceIoControl .
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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de