SetSystemFileCacheSize 函数 (memoryapi.h)

限制文件系统缓存的工作集的大小。

语法

BOOL SetSystemFileCacheSize(
  [in] SIZE_T MinimumFileCacheSize,
  [in] SIZE_T MaximumFileCacheSize,
  [in] DWORD  Flags
);

parameters

[in] MinimumFileCacheSize

文件缓存的最小大小(以字节为单位)。 虚拟内存管理器尝试将至少如此多的内存保留在系统文件缓存中。

若要刷新缓存,请指定 (SIZE_T) -1

[in] MaximumFileCacheSize

文件缓存的最大大小(以字节为单位)。 仅当此调用或上一次对 SetSystemFileCacheSize 的调用指定 FILE_CACHE_MAX_HARD_ENABLE时,虚拟内存管理器才会强制实施此限制。

若要刷新缓存,请指定 (SIZE_T) -1

[in] Flags

启用或禁用文件缓存限制的标志。 如果此参数为 0 (零) ,则大小限制将保留当前设置(禁用或启用)。

含义
FILE_CACHE_MAX_HARD_DISABLE
0x2
禁用最大大小限制。

FILE_CACHE_MAX_HARD_DISABLEFILE_CACHE_MAX_HARD_ENABLE标志互斥。

FILE_CACHE_MAX_HARD_ENABLE
0x1
启用最大大小限制。

FILE_CACHE_MAX_HARD_DISABLEFILE_CACHE_MAX_HARD_ENABLE标志互斥。

FILE_CACHE_MIN_HARD_DISABLE
0x8
禁用最小大小限制。

FILE_CACHE_MIN_HARD_DISABLEFILE_CACHE_MIN_HARD_ENABLE标志互斥。

FILE_CACHE_MIN_HARD_ENABLE
0x4
启用最小大小限制。

FILE_CACHE_MIN_HARD_DISABLEFILE_CACHE_MIN_HARD_ENABLE标志互斥。

返回值

如果函数成功,则返回值为非零值。

如果函数失败,则返回值为 0(零)。 要获得更多的错误信息,请调用 GetLastError。

注解

调用进程必须启用 SE_INCREASE_QUOTA_NAME 特权。

MaximumFileCacheSize 参数设置为非常低的值可能会对系统性能产生负面影响。

若要编译使用此函数的应用程序, 请将_WIN32_WINNT 定义为 0x0502 或更高版本。 有关详细信息,请参阅 使用 Windows 标头

FILE_CACHE_* 常量将在 Windows 头文件中定义,从 Windows SDK for Windows Server 2008 开始。 如果使用 SDK 早期版本中的头文件,请将以下定义添加到代码。

#ifndef FILE_CACHE_FLAGS_DEFINED

#define FILE_CACHE_MAX_HARD_ENABLE      0x00000001
#define FILE_CACHE_MAX_HARD_DISABLE     0x00000002
#define FILE_CACHE_MIN_HARD_ENABLE      0x00000004
#define FILE_CACHE_MIN_HARD_DISABLE     0x00000008

#endif // FILE_CACHE_FLAGS_DEFINED

要求

   
最低受支持的客户端 Windows Vista、Windows XP Professional x64 Edition [仅限桌面应用]
最低受支持的服务器 Windows Server 2008、Windows Server 2003 SP1 [仅限桌面应用]
目标平台 Windows
标头 memoryapi.h (包括 Windows.h、Memoryapi.h)
Library onecore.lib
DLL Kernel32.dll

另请参阅

GetSystemFileCacheSize

内存管理函数