DISK_CACHE_INFORMATION 结构 (ntdddisk.h)

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

包含 PrefetchScalarTRUE 时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE则 ScalarPrefetch.Minimum 中的值将乘以传输长度,以获取可在磁盘操作上预提取到缓存中的最小数据量。

DUMMYUNIONNAME.ScalarPrefetch.Maximum

包含 PrefetchScalarTRUE 时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE则 ScalarPrefetch.Maximum 中的值将乘以传输长度,以获取可在磁盘操作上预提取到缓存中的最大数据量。

DUMMYUNIONNAME.ScalarPrefetch.MaximumBlocks

包含传输长度的最大大小(以块为单位)。

DUMMYUNIONNAME.BlockPrefetch

DUMMYUNIONNAME.BlockPrefetch.Minimum

包含 PrefetchScalarTRUE 时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE则 ScalarPrefetch.Minimum 中的值将乘以传输长度,以获取可在磁盘操作上预提取到缓存中的最小数据量。

DUMMYUNIONNAME.BlockPrefetch.Maximum

包含 PrefetchScalarTRUE 时请求传输长度的标量乘数。 如果 PrefetchScalarTRUE则 ScalarPrefetch.Maximum 中的值将乘以传输长度,以获取可在磁盘操作上预提取到缓存中的最大数据量。

要求

要求
Header ntdddisk.h (包括 Ntdddisk.h)

另请参阅

DISK_CACHE_INFORMATION

IOCTL_DISK_GET_CACHE_INFORMATION