DISK_CACHE_INFORMATION结构与用于检索缓存信息的 IOCTL_DISK_GET_CACHE_INFORMATION 请求一起使用。
语法
typedef struct _DISK_CACHE_INFORMATION {
BOOLEAN ParametersSavable;
BOOLEAN ReadCacheEnabled;
BOOLEAN WriteCacheEnabled;
DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority;
DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority;
USHORT DisablePrefetchTransferLength;
BOOLEAN PrefetchScalar;
union {
struct {
USHORT Minimum;
USHORT Maximum;
USHORT MaximumBlocks;
} ScalarPrefetch;
struct {
USHORT Minimum;
USHORT Maximum;
} BlockPrefetch;
} DUMMYUNIONNAME;
} DISK_CACHE_INFORMATION, *PDISK_CACHE_INFORMATION;
成员
ParametersSavable
指示当设置为 1 时,设备能够在非易失性存储中保存任何参数。
ReadCacheEnabled
指示设置为 1 时,将启用读取缓存。
WriteCacheEnabled
指示设置为 1 时,将启用写入缓存。
ReadRetentionPriority
确定缓存中剩余各种类型的数据的可能性。 例如,通过此值,从 READ 或 WRITE作缓存的数据的优先级可能不同于在其他情况下缓存的数据,例如预提取作。 因此,EqualPriority 的值表示缓存中没有优先保存任何数据。 当 ReadRetentionPriority 设置为 EqualPriority时,所有类型的数据都具有对缓存内存的同等访问权限。 另一方面,KeepPrefetchedData 的值指示要向预提取数据提供首选项,而 KeepReadData 的值表示要向从 READ作缓存的数据提供首选项。 有关可分配给此成员的值的详细信息,请参阅 DISK_CACHE_RETENTION_PRIORITY 枚举。
WriteRetentionPriority
请参阅 ReadRetentionPriority下的讨论。
DisablePrefetchTransferLength
禁用预提取。 每当请求的块数超过 DisablePrefetchTransferLength中的值时,可能会禁用预提取。 当为零时,无论块请求的大小如何,都禁用预提取。
PrefetchScalar
当 TRUE时,指示应将 ScalarPrefetch.Maximum 与传输长度一起使用,以计算可预提取的数据量。 FALSE时,BlockPrefetch.Maximum 将是可以预提取的最大磁盘块数。
DUMMYUNIONNAME
DUMMYUNIONNAME.ScalarPrefetch
DUMMYUNIONNAME.ScalarPrefetch.Minimum
包含 PrefetchScalar为 TRUE时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE,则 ScalarPrefetch.Minimum 中的值乘以传输长度,以获取可以预提取到磁盘作上的缓存中的最小数据量。
DUMMYUNIONNAME.ScalarPrefetch.Maximum
包含 PrefetchScalar为 TRUE时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE,则 ScalarPrefetch.Maximum 中的值乘以传输长度,以获取可以预提取到磁盘作上的缓存的最大数据量。
DUMMYUNIONNAME.ScalarPrefetch.MaximumBlocks
包含传输长度的最大大小(以块为单位)。
DUMMYUNIONNAME.BlockPrefetch
DUMMYUNIONNAME.BlockPrefetch.Minimum
包含 PrefetchScalar为 TRUE时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE,则 ScalarPrefetch.Minimum 中的值乘以传输长度,以获取可以预提取到磁盘作上的缓存中的最小数据量。
DUMMYUNIONNAME.BlockPrefetch.Maximum
包含 PrefetchScalar为 TRUE时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE,则 ScalarPrefetch.Maximum 中的值乘以传输长度,以获取可以预提取到磁盘作上的缓存的最大数据量。
要求
| 要求 | 价值 |
|---|---|
| 标头 | ntdddisk.h (包括 Ntdddisk.h) |