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 (零) ,则大小限制将保留当前设置(禁用或启用)。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,则返回值为 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 |