调用SetSystemFileCacheSize API失败的奇怪有关问题
调用SetSystemFileCacheSize API失败的奇怪问题
我在程序中调用SetSystemFileCacheSize来设置系统文件缓存的大小,但却始终错误,代码如下:
这是声明部分,一个是GetSystemFileCacheSize函数,用来获取当前的配置,一个是SetSystemFileCacheSize函数用来设置新参数。
以下是调用:
调用的时候始终是返回false,而且参数也没有被修改,调用GetSystemFileCacheSize倒是可以正常获取当前设置。
------解决方案--------------------
详见http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa965240%28v=vs.85%29.aspx
我在程序中调用SetSystemFileCacheSize来设置系统文件缓存的大小,但却始终错误,代码如下:
public const ulong FILE_CACHE_MAX_HARD_ENABLE = 0x00000001;
public const ulong FILE_CACHE_MAX_HARD_DISABLE = 0x00000002;
public const ulong FILE_CACHE_MIN_HARD_ENABLE = 0x00000004;
public const ulong FILE_CACHE_MIN_HARD_DISABLE = 0x00000008;
[DllImport("Kernel32.dll", SetLastError = true)]
public static extern bool GetSystemFileCacheSize(out ulong lpMinimumFileCacheSize
, out ulong lpMaximumFileCacheSize
, out ulong lpFlags);
[DllImport("Kernel32.dll", SetLastError = true)]
public static extern bool SetSystemFileCacheSize(ulong MinimumFileCacheSize, ulong MaximumFileCacheSize, ulong Flags);
这是声明部分,一个是GetSystemFileCacheSize函数,用来获取当前的配置,一个是SetSystemFileCacheSize函数用来设置新参数。
以下是调用:
ulong lpMinimumFileCacheSize = 1048576;
ulong lpMaximumFileCacheSize = 1048576 * 1024;
bool isok = SetSystemFileCacheSize(lpMinimumFileCacheSize, lpMaximumFileCacheSize, FILE_CACHE_MAX_HARD_ENABLE | FILE_CACHE_MIN_HARD_ENABLE);
调用的时候始终是返回false,而且参数也没有被修改,调用GetSystemFileCacheSize倒是可以正常获取当前设置。
------解决方案--------------------
详见http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa965240%28v=vs.85%29.aspx