Função SetFileIoOverlappedRange (fileapi.h)

Associa um intervalo de endereços virtuais ao identificador de arquivo especificado. Isso indica que o kernel deve otimizar quaisquer solicitações de E/S assíncronas adicionais com estruturas sobrepostas dentro desse intervalo. O intervalo sobreposto é bloqueado na memória e desbloqueado quando o arquivo é fechado. Depois que um intervalo é associado a um identificador de arquivo, ele não pode ser desassociado.

Sintaxe

BOOL SetFileIoOverlappedRange(
  [in] HANDLE FileHandle,
  [in] PUCHAR OverlappedRangeStart,
  [in] ULONG  Length
);

Parâmetros

[in] FileHandle

Um manipulador para o arquivo.

Esse identificador de arquivo deve ser aberto com FILE_READ_ATTRIBUTES direitos de acesso.

[in] OverlappedRangeStart

O endereço inicial do intervalo.

[in] Length

O comprimento do intervalo, em bytes.

Retornar valor

Retornará diferente de zero se tiver êxito ou zero caso contrário.

Para obter informações de erro estendidas, chame GetLastError.

Comentários

SetFileIoOverlappedRange pode ser usado para melhorar o desempenho em um aplicativo que emite um alto número de E/S assíncrona e usa um intervalo definido de estruturas sobrepostas. Como esse intervalo de estruturas está bloqueado na memória, o kernel pode evitar a aquisição de determinados bloqueios ao atualizar as estruturas sobrepostas com os resultados da solicitação de E/S.

SetFileIoOverlappedRange exige que o chamador tenha o privilégio de acesso SeLockMemoryPrivilege .

Essa função não tem efeito na E/S em buffer e síncrona.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho fileapi.h (inclua Windows.h, WinBase.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de gerenciamento de arquivos