VDS_HINTS 结构 (vdshwprv.h)
[从 Windows 8 和 Windows Server 2012 开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]
定义 LUN 或 LUN plex 的自动磁力提示。
语法
typedef struct _VDS_HINTS {
ULONGLONG ullHintMask;
ULONGLONG ullExpectedMaximumSize;
ULONG ulOptimalReadSize;
ULONG ulOptimalReadAlignment;
ULONG ulOptimalWriteSize;
ULONG ulOptimalWriteAlignment;
ULONG ulMaximumDriveCount;
ULONG ulStripeSize;
BOOL bFastCrashRecoveryRequired;
BOOL bMostlyReads;
BOOL bOptimizeForSequentialReads;
BOOL bOptimizeForSequentialWrites;
BOOL bRemapEnabled;
BOOL bReadBackVerifyEnabled;
BOOL bWriteThroughCachingEnabled;
BOOL bHardwareChecksumEnabled;
BOOL bIsYankable;
SHORT sRebuildPriority;
} VDS_HINTS, *PVDS_HINTS;
成员
ullHintMask
LUN 提示掩码。 此结构的每个 BOOL 成员都有一个可在掩码中设置的相应提示标志。 如果设置了提示标志,则考虑相应的提示。 如果未设置提示标志,则忽略提示。 下表描述了提示标志。
ullExpectedMaximumSize
LUN 预期增长到的最大大小(以字节为单位)。 调用 IVdsSubSystem::CreateLun 方法时,该值可以等于、大于或小于 ullSizeInBytes 中指定的值。 某些提供程序使用此值为 LUN 保留空间。 无法保留空间的提供程序通常会忽略此参数。
ulOptimalReadSize
LUN 的最佳读取大小(以字节为单位)。 零表示没有最佳读取大小。
ulOptimalReadAlignment
与 LUN 的第一个逻辑块相关的最佳读取对齐方式。 零表示没有最佳的读取对齐方式。
ulOptimalWriteSize
LUN 的最佳写入大小(以字节为单位)。 零表示没有最佳写入大小。
ulOptimalWriteAlignment
与 LUN 的第一个逻辑块相关的最佳写入对齐方式。 零表示没有最佳的写入对齐方式。
ulMaximumDriveCount
用于 LUN 的最大驱动器数。 零表示没有最大驱动器计数。 此值可用于限制条带集中的条带交错数。
ulStripeSize
镜像或奇偶校验条带交错大小(以字节为单位)。 零将保留未指定条带大小。
bFastCrashRecoveryRequired
如果此成员为 TRUE,则恢复时间有限。 在 ullHintMask 成员中设置 VDS_HINT_FASTCRASHRECOVERYREQUIRED 标志,以指示对此成员感兴趣。
bMostlyReads
若要优化主要读取的使用模式 (例如通过镜像而不是奇偶校验条带化) ,请将此成员设置为 TRUE。 否则,请将其设置为 FALSE。 在 ullHintMask 成员中设置VDS_HINT_MOSTLYREADS标志,以指示对此成员感兴趣。
bOptimizeForSequentialReads
若要优化顺序读取使用模式,请将此成员设置为 TRUE。 否则,请将其设置为 FALSE。 将 bOptimizeForSequentialReads 和 bOptimizeForSequentialWrites 成员都设置为 FALSE 可针对随机 I/O 进行优化。 在 ullHintMask 成员中设置 VDS_HINT_OPTIMIZEFORSEQUENTIALREADS 标志,以指示对此成员感兴趣。
bOptimizeForSequentialWrites
若要优化顺序写入使用模式,请将 将此成员设置为 TRUE。 否则,请将其设置为 FALSE。 将 bOptimizeForSequentialReads 和 bOptimizeForSequentialWrites 成员都设置为 FALSE 可针对随机 I/O 进行优化。 在 ullHintMask 成员中设置VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES标志,以指示对此成员感兴趣。
bRemapEnabled
如果此成员为 TRUE,提供程序会自动将 LUN 盘区重新映射到驱动器盘区。 如果为 FALSE,则 LUN 盘区到驱动器盘区的映射在 LUN 配置后将保持不变,除非显式重新映射盘区以避免损坏的块。 在 ullHintMask 成员中设置VDS_HINT_REMAPENABLED标志,以指示对此成员感兴趣。
bReadBackVerifyEnabled
如果此成员设置为 TRUE,提供程序将通过读回验证对 LUN 的写入。 如果设置为 FALSE,则提供程序不会验证写入。 在 ullHintMask 成员中设置VDS_HINT_READBACKVERIFYENABLED标志,以指示对此成员感兴趣。
bWriteThroughCachingEnabled
如果此成员为 TRUE,则提供程序在 LUN 上启用写通缓存。 如果为 FALSE,则提供程序不启用直通写缓存。 在 ullHintMask 成员中设置VDS_HINT_WRITETHROUGHCACHINGENABLED标志,以指示对此成员感兴趣。
bHardwareChecksumEnabled
如果此成员为 TRUE,则提供程序在 LUN 上启用校验和。 在 ullHintMask 成员中设置VDS_HINT_HARDWARECHECKSUMENABLED标志,以指示对此成员感兴趣。
bIsYankable
如果此成员为 TRUE,则可以物理删除影响 LUN 的驱动器,而不会对系统造成重大中断 (当 LUN 由仅) 几个驱动器的盘区组成时,这通常为 true。 如果为 FALSE,则无法删除 LUN,而不会对系统造成重大中断。 在 ullHintMask 成员中设置VDS_HINT_ISYANKABLE标志以指示对此成员感兴趣。
sRebuildPriority
LUN 的重新生成优先级。 该值的范围可以是 0 (最低优先级) 到 15 (最高优先级) 。
注解
IVdsSubSystem::CreateLun 方法将此结构作为参数传递,以提供创建 LUN 的提示。 它在 IVdsLun 和 IVdsLunPlex 接口上的 ApplyHints 方法中作为参数传递,分别将一组新的提示应用于 LUN 或 LUN plex。 此外,它由 IVdsLun 和 IVdsLunPlex 接口上的 QueryHints 方法返回,以分别报告当前应用于 LUN 或 LUN plex 的提示。
提示不是对实现者的指令。 虽然实施者通常希望尽最大努力考虑提示,但他们没有义务遵循提示。 如果由于技术原因而无法遵循指定的提示或遵循这些提示可能会导致配置不佳,则实施者可以选择替代方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | vdshwprv.h |