Função CcCoherencyFlushAndPurgeCache (ntifs.h)
O CcCoherencyFlushAndPurgeCache liberações de rotina ou libera e limpa, o cache para garantir a coerência do cache.
Sintaxe
void CcCoherencyFlushAndPurgeCache(
[in] PSECTION_OBJECT_POINTERS SectionObjectPointer,
[in, optional] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[out] PIO_STATUS_BLOCK IoStatus,
[in, optional] ULONG Flags
);
Parâmetros
[in] SectionObjectPointer
Um ponteiro para uma estrutura SECTION_OBJECT_POINTERS que contém os ponteiros de objeto de seção do objeto de arquivo.
[in, optional] FileOffset
Um ponteiro para uma variável que especifica o deslocamento de bytes inicial para liberar ou para liberar e limpar.
[in] Length
O comprimento em bytes dos dados a serem liberados ou para liberar e limpar, começando em FileOffset . Esse parâmetro será ignorado se um ponteiro NULL
[out] IoStatus
Um ponteiro para uma estrutura de IO_STATUS_BLOCK alocada pelo chamador que recebe o status de conclusão final e informações sobre a operação.
[in, optional] Flags
Uma máscara de bits dos seguintes sinalizadores que especificam como a operação deve ser executada:
Valor | Significado |
---|---|
CC_FLUSH_AND_PURGE_NO_PURGE | Libere, mas não limpe o cache. Isso é útil para liberações de coerência de leitura. |
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS | Reservado para uso do sistema; não use. |
CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN | O chamador pode definir esse sinalizador quando não houver mapeamentos para o arquivo fora do gerenciador de cache, a fim de ignorar a operação cara de cortar conjuntos de trabalho do processo. |
Valor de retorno
Nenhum
Observações
Use ccCoherencyFlushAndPurgeCache quando possível, em vez de uma sequência de chamadas de liberação e limpeza explícita, pois invalidará exibições mapeadas pelo usuário para evitar corrupção de dados. CcCoherencyFlushAndPurgeCache garante a coerência do cache; como tal, não há nenhuma opção para fazer uma limpeza somente por meio dessa função.
O arquivo deve ser adquirido exclusivamente antes de chamar CcCoherencyFlushAndPurgeCache.
Você pode liberar ou liberar e limpar qualquer intervalo de bytes dentro de um arquivo usando os parâmetros FileOffset e Length. Ou você pode liberar ou limpar um arquivo inteiro se passar um ponteiro de NULL
Uma chamada para ccCoherencyFlushAndPurgeCache é uma operação síncrona (bloqueio), não uma operação assíncrona (sem bloqueio).
Um valor de status de
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 7 |
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h, FltKernel.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Consulte também
ccFlushCache