// Copyright (c) 2008 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\CIMV2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\CIMV2\\ms_804")

[Description("StorageVolume 是向操作系统(例如，通过硬件 RAID 机箱)、文件系统(例如，通过软件卷管理器)或其他实体提供的盘区。StorageVolume 不加入 StorageRedundancy 组。它们直接在硬件中实现，或者是将较低级别的盘区组合起来的最终结果。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_StorageVolume : CIM_StorageExtent
{
};

[description("Win32_Volume 类表示硬盘上的存储区域。此类返回已格式化、未格式化、已装载或处于脱机状态的本地卷。卷是通过使用文件系统(如 FAT 或 NTFS)格式化的，可能已分配了一个驱动器号。单个硬盘可以具有多个卷，而卷也可以跨多个磁盘。Win32_Volume 类不支持磁盘驱动器管理。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_Volume : CIM_StorageVolume
{
  [Key : ToInstance ToSubclass DisableOverride,DisplayName("ID") : Amended,Description("DeviceID 属性包含一个唯一标识系统上的卷的字符串。") : Amended ToSubclass] string DeviceID;
  [DisplayName("容量") : Amended,Description("Capacity 属性指示卷的大小(以字节为单位)。") : Amended ToSubclass] uint64 Capacity;
  [DisplayName("已压缩") : Amended,Description("如果为 TRUE，则该卷将作为单个压缩实体(如 DoubleSpace 卷)存在。如果基于文件的压缩受支持(例如，在 NTFS 上)，则此属性将为 FALSE。") : Amended ToSubclass] boolean Compressed;
  [DisplayName("驱动器号") : Amended,Description("DriveLetter 属性指示分配给卷的驱动器号。对于没有驱动器号的卷，此属性为 NULL。") : Amended ToSubclass] string DriveLetter;
  [Description("DriveType 属性包含与此逻辑磁盘所代表的磁盘驱动器类型相应的数值。有关其他值的信息，请参阅 Platform SDK 文档。\n例如: CD-ROM 驱动器会返回 5。") : Amended ToSubclass,Values{"未知", "无根目录", "可移动磁盘", "本地磁盘", "网络驱动器", "光盘", "RAM 磁盘"} : Amended ToSubclass] uint32 DriveType;
  [DisplayName("文件系统") : Amended,Description("FileSystem 属性指示逻辑磁盘上的文件系统。例如: NTFS") : Amended ToSubclass] string FileSystem;
  [DisplayName("可用空间") : Amended,Description("FreeSpace 属性指示卷上有多少可用空间(以字节为单位)。") : Amended ToSubclass] uint64 FreeSpace;
  [DisplayName("索引已启用") : Amended,Description("如果启用了上下文索引，则此属性将为 TRUE") : Amended ToSubclass] boolean IndexingEnabled;
  [DisplayName("更改位集") : Amended,Description("指示 ChkDsk 方法是否应在下次启动时运行。") : Amended ToSubclass] boolean DirtyBitSet;
  [DisplayName("标签") : Amended,Description("Label 属性指示逻辑磁盘的卷名。约束: 最多 32 个字符。对于没有标签的卷，此属性为 NULL。") : Amended ToSubclass] string Label;
  [DisplayName("最大文件名长度") : Amended,Description("Windows 驱动器支持的文件名组件的最大长度。文件名组件是反斜杠之间的文件名部分。可以使用该值指示指定的文件系统支持长名称。例如，对于支持长名称的 FAT 文件系统，该函数存储值 255，而不是以前的 8.3 指示器。此外，使用 NTFS 文件系统的系统也支持长名称。示例: 255") : Amended ToSubclass] uint32 MaximumFileNameLength;
  [DisplayName("自动装载已启用") : Amended,Description("如果为 TRUE，则 Automount 属性指示在发出第一个 I/O 时，该卷将自动装载到文件系统。否则将不会装载该卷，直到使用 Mount 方法或通过添加驱动器号/装入点显式装载。") : Amended ToSubclass] boolean Automount;
  [DisplayName("配额已启用") : Amended,Description("QuotasEnabled 属性指示是否已对此卷启用配额管理。") : Amended ToSubclass] boolean QuotasEnabled;
  [DisplayName("配额未完成") : Amended,Description("QuotasIncomplete 属性指示曾经使用过配额管理，但现在已将其禁用。Incomplete 是指在禁用配额管理后遗留在文件系统中的信息。") : Amended ToSubclass] boolean QuotasIncomplete;
  [DisplayName("配额重建") : Amended,Description("QuotasRebuilding 属性指示文件系统正在编译信息并设置磁盘以进行配额管理。") : Amended ToSubclass] boolean QuotasRebuilding;
  [DisplayName("序列号") : Amended,Description("SerialNumber 属性指示卷的序列号。示例: A8C3D032") : Amended ToSubclass] uint32 SerialNumber;
  [DisplayName("支持磁盘配额") : Amended,Description("SupportsDiskQuotas 属性指示卷是否支持磁盘配额。") : Amended ToSubclass] boolean SupportsDiskQuotas;
  [DisplayName("支持基于文件的压缩") : Amended,Description("SupportsFileBasedCompression 属性指示卷是否像 NTFS 文件系统一样支持基于文件的压缩。") : Amended ToSubclass] boolean SupportsFileBasedCompression;
  [DisplayName("存在页面文件") : Amended,Description("PageFilePresent 属性指示卷是否包含系统内存分页文件。") : Amended ToSubclass] boolean PageFilePresent;
  [DisplayName("系统卷") : Amended,Description("SystemVolume 属性指示卷是否包含启动操作系统所需的硬件特定文件。") : Amended ToSubclass] boolean SystemVolume;
  [DisplayName("引导卷") : Amended,Description("BootVolume 属性指示卷是否包含当前正在运行的操作系统文件。") : Amended ToSubclass] boolean BootVolume;
  [Description("此方法对卷调用 chkdsk 操作。此方法仅适用于那些表示计算机中的物理磁盘的卷实例。它不适用于映射的逻辑驱动器。") : Amended ToSubclass,Values{"成功", "成功 - 在重新启动时锁定卷并计划 Chkdsk", "不受支持的文件系统", "未知的文件系统", "驱动器中无介质", "未知错误"} : Amended ToSubclass] uint32 Chkdsk([in,Description("此参数指明针对磁盘上发现的错误所应采取的措施。如果其值为 true，则表示错误已修复。") : Amended ToSubclass] boolean FixErrors,[in,Description("此参数指明是否需要执行有力的索引项检查。") : Amended ToSubclass] boolean VigorousIndexCheck,[in,Description("此参数指明是否应跳过文件夹循环检查。") : Amended ToSubclass] boolean SkipFolderCycle,[in,Description("此参数指示在进行检查前是否应强制卸载卷。") : Amended ToSubclass] boolean ForceDismount,[in,Description("此参数指明是否应找出发生故障的扇区，以及是否应从这些扇区恢复可读信息。") : Amended ToSubclass] boolean RecoverBadSectors,[in,Description("此参数指明在下次引导启动时是否应执行 chkdsk 操作，以防止在调用该方法时因磁盘被锁定而导致操作无法执行。") : Amended ToSubclass] boolean OkToRunAtBootUp);
  [Description("此方法用于计划在下次重新启动时运行 chkdsk (如果已设置更改位)。此方法仅适用于那些表示计算机中的物理磁盘的卷实例。它不适用于映射的逻辑驱动器。") : Amended ToSubclass,Values{"成功", "远程驱动器", "可移动驱动器", "驱动器不是根目录", "未知驱动器"} : Amended ToSubclass] uint32 ScheduleAutoChk([in,Description("此参数用于指定应计划在下次重新启动时执行 autochk 的卷列表。此字符串语法包括卷的驱动器号、装入点名称或卷 GUID 名称。") : Amended ToSubclass] string Volume[]);
  [Description("此方法用于将卷从要在下次重新启动时运行的 chkdsk 操作中排除。如果未排除，则将对卷执行 chkdsk (如果已为磁盘设置更改位)。请注意，用于排除卷的调用不是累积的。即，如果已调用此方法排除某些卷，则不会向已标记为排除的卷列表中添加新列表，相反，新的卷列表将覆盖以前的列表。此方法仅适用于那些表示计算机中的物理磁盘的卷实例。它不适用于映射的逻辑驱动器。") : Amended ToSubclass,Values{"成功", "远程驱动器", "可移动驱动器", "驱动器不是根目录", "未知驱动器"} : Amended ToSubclass] uint32 ExcludeFromAutoChk([in,Description("此参数用于指定应从下次重新启动时执行的 autochk 中排除的卷的列表。此字符串语法包括逻辑磁盘的驱动器号(后跟冒号)。") : Amended ToSubclass] string Volume[]);
  [Description("此方法用于格式化卷。") : Amended ToSubclass,Values{"成功", "不受支持的文件系统", "驱动器中的介质不兼容", "拒绝访问", "调用已取消", "调用取消请求太迟", "卷有写保护", "卷锁定失败", "无法快速格式化", "输入/输出错误", "无效的卷标", "驱动器中无介质", "卷太小", "卷太大", "卷未装载", "簇大小太小", "簇大小太大", "簇大小超过 32 位", "未知错误", "格式化完成后无法启用压缩"} : Amended ToSubclass] uint32 Format([in,DisplayName("文件系统") : Amended,Description("要用于此卷的文件系统格式。") : Amended ToSubclass,Values{"NTFS", "FAT32", "FAT", "UDF", "EXFAT"} : Amended ToSubclass] string FileSystem,[in,DisplayName("快速格式化") : Amended,Description("指定是否要通过从磁盘中删除文件而不扫描磁盘是否有坏扇区，来执行快速格式化。只有在以前已格式化该磁盘，并且确信该磁盘未损坏的情况下才使用此选项。") : Amended ToSubclass] boolean QuickFormat,[in,DisplayName("簇大小") : Amended,Description("指定磁盘分配单元大小或簇大小。此版本的 Windows 使用的所有文件系统均基于簇大小组织硬盘，簇大小表示可以分配用来保留文件的最小磁盘空间量。使用的簇大小越小，磁盘存储信息的效率就越高。如果在格式化期间未指定簇大小，则 Windows  将基于卷大小选取默认值。已选择这些默认值来减少丢失的空间量并减少卷上的碎片量。对于一般用途，强烈建议使用默认设置(零)。") : Amended ToSubclass] uint32 ClusterSize,[in,DisplayName("标签") : Amended,Description("要用于新卷的标签。对于 FAT 和 FAT32 卷，卷标最多可以包含 11 个字符；对于 NTFS 卷，卷标最多可以包含 32 个字符。") : Amended ToSubclass] string Label,[in,DisplayName("启用压缩") : Amended,Description("指示是否应对卷启用压缩") : Amended ToSubclass] boolean EnableCompression,[in,DisplayName("版本") : Amended,Description("指定的文件系统的版本号。此项当前仅对 UDF 有效。默认值(零)将导致格式化引擎选择版本。") : Amended ToSubclass,Values{"默认值", "1.00", "1.01", "1.02", "1.50", "2.00", "2.01", "2.50"} : Amended ToSubclass] uint32 Version);
  [Description("此方法用于对卷进行碎片整理。") : Amended ToSubclass,Values{"成功", "拒绝访问", "卷不受支持", "已设置卷更改位", "可用空间不足", "检测到主文件表已损坏", "调用已取消", "调用取消请求太迟", "碎片整理引擎已在运行", "无法连接到碎片整理引擎", "碎片整理引擎出错", "未知错误"} : Amended ToSubclass] uint32 Defrag([in,Description("此参数用于强制进行碎片整理(即使磁盘上的可用空间很少)。") : Amended ToSubclass] boolean Force,[out,Description("此参数是一个 Win32_DefragAnalysis 对象，包含描述卷已碎片化的程度的属性。") : Amended ToSubclass] object DefragAnalysis);
  [Description("此方法用于为卷生成碎片整理分析。") : Amended ToSubclass,Values{"成功", "拒绝访问", "卷不受支持", "已设置卷更改位", "可用空间不足", "检测到主文件表已损坏", "调用已取消", "调用取消请求太迟", "碎片整理引擎已在运行", "无法连接到碎片整理引擎", "碎片整理引擎出错", "未知错误"} : Amended ToSubclass] uint32 DefragAnalysis([out,Description("此参数指示是否建议对卷进行碎片整理。") : Amended ToSubclass] boolean DefragRecommended,[out,Description("此参数是一个 Win32_DefragAnalysis 对象，包含描述卷已碎片化的程度的属性。") : Amended ToSubclass] object DefragAnalysis);
  [Description("此方法用于为卷添加装入点目录。此方法的结果是创建将此卷与表示参数列表中指定目录的 Win32_Directory 实例相关联的 Win32_MountPoint 类") : Amended ToSubclass,Values{"成功", "拒绝访问", "无效参数", "指定的目录不为空", "找不到指定的目录", "卷装入点不受支持", "未知错误"} : Amended ToSubclass] uint32 AddMountPoint([in,Description("此参数是要装载卷的目录。") : Amended ToSubclass] string Directory);
  [Description("此方法用于将卷装载到文件系统。") : Amended ToSubclass,Values{"成功", "拒绝访问", "未知错误"} : Amended ToSubclass] uint32 Mount();
  [Description("此方法用于将卷从文件系统中卸载。") : Amended ToSubclass,Values{"成功", "拒绝访问", "卷有装入点", "卷不支持非自动装载状态", "强制选项是必需的", "未知错误", "由于卷已锁定，强制卸载失败。"} : Amended ToSubclass] uint32 Dismount([in,Description("此参数指示存在打开句柄时是否应强制卸载卷。") : Amended ToSubclass] boolean Force,[in,Description("此参数指示是否应将卷卸载到非自动装载(脱机)状态。可以通过显式调用 Mount 方法或为卷创建装入点，使卷返回到自动装载状态。") : Amended ToSubclass] boolean Permanent);
};

[Description("DefragAnalysis 是执行 Win32_Volume::DefragAnalysis 或 Defrag 方法的结果；此项作为这些方法的 [输出] 参数传递。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Win32_DefragAnalysis
{
  [DisplayName("卷名") : Amended,Description("为其生成此报告的卷的名称。此属性可以是卷的驱动器号、装入点或卷 GUID 名称。") : Amended ToSubclass] string VolumeName;
  [DisplayName("卷大小") : Amended,Description("卷的总大小。") : Amended ToSubclass] uint64 VolumeSize;
  [DisplayName("簇大小") : Amended,Description("文件系统分配的大小。") : Amended ToSubclass] uint64 ClusterSize;
  [DisplayName("已用空间") : Amended,Description("卷上当前使用的空间。") : Amended ToSubclass] uint64 UsedSpace;
  [DisplayName("可用空间") : Amended,Description("卷上当前可用的空间。") : Amended ToSubclass] uint64 FreeSpace;
  [DisplayName("可用空间百分比") : Amended,Description("卷上可用空间的百分比。") : Amended ToSubclass] uint32 FreeSpacePercent;
  [DisplayName("碎片总百分比") : Amended,Description("卷上碎片的总百分比。由于计算的值不可靠，此属性已弃用。请使用 FilePercentFragmentation 评估卷的碎片情况。") : Amended ToSubclass] uint32 TotalPercentFragmentation;
  [DisplayName("文件碎片百分比") : Amended,Description("卷上已碎片化的文件的百分比。") : Amended ToSubclass] uint32 FilePercentFragmentation;
  [DisplayName("可用空间碎片百分比") : Amended,Description("卷上已碎片化的可用空间的百分比。由于计算的值不可靠，此属性已弃用。请使用 AverageFreeSpacePerExtent、LargestFreeSpaceExtent 和 TotalFreeSpaceExtents 来评估卷可用空间的碎片情况。") : Amended ToSubclass] uint32 FreeSpacePercentFragmentation;
  [DisplayName("文件总数") : Amended,Description("卷上文件的总数。") : Amended ToSubclass] uint64 TotalFiles;
  [DisplayName("平均文件大小") : Amended,Description("卷上文件的平均大小。") : Amended ToSubclass] uint64 AverageFileSize;
  [DisplayName("碎片文件总数") : Amended,Description("卷上的碎片文件的总数。") : Amended ToSubclass] uint64 TotalFragmentedFiles;
  [DisplayName("剩余文件碎片总数") : Amended,Description("卷上的剩余文件碎片的总数。") : Amended ToSubclass] uint64 TotalExcessFragments;
  [DisplayName("每个文件的平均碎片数") : Amended,Description("卷上每个文件的平均碎片数。") : Amended ToSubclass] real64 AverageFragmentsPerFile;
  [DisplayName("页面文件大小") : Amended,Description("卷上的页面文件大小。如果卷上没有页面文件，则此属性将为 NULL。由于页面文件碎片已不再可用，此属性已弃用。为此属性返回的值将始终为零。") : Amended ToSubclass] uint64 PageFileSize;
  [DisplayName("页面文件碎片总数") : Amended,Description("页面文件的碎片总数。如果卷上没有页面文件，则此属性将为 NULL。由于页面文件碎片已不再可用，此属性已弃用。为此属性返回的值将始终为零。") : Amended ToSubclass] uint64 TotalPageFileFragments;
  [DisplayName("文件夹总数") : Amended,Description("卷上的文件夹总数。") : Amended ToSubclass] uint64 TotalFolders;
  [DisplayName("碎片文件夹") : Amended,Description("卷上的碎片文件夹总数。") : Amended ToSubclass] uint64 FragmentedFolders;
  [DisplayName("剩余文件夹碎片数") : Amended,Description("卷上的剩余文件夹碎片的总数。") : Amended ToSubclass] uint64 ExcessFolderFragments;
  [DisplayName("主文件表总大小") : Amended,Description("卷上的主文件表的总大小。") : Amended ToSubclass] uint64 TotalMFTSize;
  [DisplayName("主文件表记录计数") : Amended,Description("主文件表中的记录数。") : Amended ToSubclass] uint64 MFTRecordCount;
  [DisplayName("正在使用的主文件表百分比") : Amended,Description("正在使用的主文件表所占的百分比。") : Amended ToSubclass] uint32 MFTPercentInUse;
  [DisplayName("主文件表碎片总数") : Amended,Description("卷上的主文件表碎片的总数。") : Amended ToSubclass] uint64 TotalMFTFragments;
  [DisplayName("每个盘区的平均可用空间") : Amended,Description("卷上的可用空间盘区的平均大小。") : Amended ToSubclass] uint64 AverageFreeSpacePerExtent;
  [DisplayName("最大可用空间盘区") : Amended,Description("卷上的最大可用空间盘区的大小。") : Amended ToSubclass] uint64 LargestFreeSpaceExtent;
  [DisplayName("可用空间盘区总数") : Amended,Description("卷上的可用空间盘区总数。") : Amended ToSubclass] uint64 TotalFreeSpaceExtents;
  [DisplayName("不可移动文件总数") : Amended,Description("卷上的不可移动文件的总数。") : Amended ToSubclass] uint64 TotalUnmovableFiles;
};

[Description("装入点将卷与装载该卷的目录相关联。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_MountPoint
{
  [DisplayName("目录") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("目录") : Amended ToSubclass] Win32_Directory Ref Directory;
  [DisplayName("卷") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("卷") : Amended ToSubclass] Win32_Volume Ref Volume;
};

[Description("Win32_VolumeQuota 关联将卷与每卷配额设置联系起来。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_VolumeQuota : CIM_ElementSetting
{
  [DisplayName("卷") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("卷") : Amended ToSubclass] Win32_Volume Ref Element;
  [DisplayName("设置") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("配额设置") : Amended ToSubclass] Win32_QuotaSetting Ref Setting;
};

[Description("Win32_VolumeUserQuota 关联将每用户配额与已启用配额的卷联系起来。系统管理员可以将 Windows 配置为在用户超过指定的磁盘空间限制时防止进一步使用磁盘空间并记录事件。他们也可以在用户超过指定的磁盘空间警告级别时记录事件。请注意，无法为管理员帐户自身设置磁盘配额。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_VolumeUserQuota
{
  [DisplayName("卷") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("卷") : Amended ToSubclass] Win32_Volume Ref Volume;
  [DisplayName("帐户") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("用户帐户") : Amended ToSubclass] Win32_Account Ref Account;
  [DisplayName("状态") : Amended,Description("Status 属性指示磁盘配额的当前状态。") : Amended ToSubclass,Values{"正常", "警告", "已超出"} : Amended ToSubclass] uint32 Status;
  [DisplayName("限制") : Amended,Description("Limit 属性指示为此特定用户或组设置的限制。") : Amended ToSubclass] uint64 Limit;
  [DisplayName("警告限制") : Amended,Description("WarningLimit 属性指示为此特定用户或组设置的警告限制。") : Amended ToSubclass] uint64 WarningLimit;
  [DisplayName("已用磁盘空间") : Amended,Description("DiskSpaceUsed 属性指示此特定用户或组当前正在使用的字节数。") : Amended ToSubclass] uint64 DiskSpaceUsed;
};
