我在程序中调用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倒是可以正常获取当前设置。