GET_VIRTUAL_DISK_INFO 结构 (virtdisk.h)
包含虚拟硬盘 (VHD) 信息。
语法
typedef struct _GET_VIRTUAL_DISK_INFO {
GET_VIRTUAL_DISK_INFO_VERSION Version;
union {
struct {
ULONGLONG VirtualSize;
ULONGLONG PhysicalSize;
ULONG BlockSize;
ULONG SectorSize;
} Size;
GUID Identifier;
struct {
BOOL ParentResolved;
WCHAR ParentLocationBuffer[1];
} ParentLocation;
GUID ParentIdentifier;
ULONG ParentTimestamp;
VIRTUAL_STORAGE_TYPE VirtualStorageType;
ULONG ProviderSubtype;
BOOL Is4kAligned;
BOOL IsLoaded;
struct {
ULONG LogicalSectorSize;
ULONG PhysicalSectorSize;
BOOL IsRemote;
} PhysicalDisk;
ULONG VhdPhysicalSectorSize;
ULONGLONG SmallestSafeVirtualSize;
ULONG FragmentationPercentage;
GUID VirtualDiskId;
struct {
BOOL Enabled;
BOOL NewerChanges;
WCHAR MostRecentId[1];
} ChangeTrackingState;
};
} GET_VIRTUAL_DISK_INFO, *PGET_VIRTUAL_DISK_INFO;
成员
Version
GET_VIRTUAL_DISK_INFO_VERSION 枚举的值,该值指定传入或传出虚拟磁盘函数的 GET_VIRTUAL_DISK_INFO 结构的版本。 这决定了将使用此结构的哪些部分。
Size
具有以下成员的 结构。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_SIZE。
Size.VirtualSize
虚拟磁盘的虚拟大小(以字节为单位)。
Size.PhysicalSize
物理磁盘上虚拟磁盘的物理大小(以字节为单位)。
Size.BlockSize
虚拟磁盘的块大小(以字节为单位)。
Size.SectorSize
虚拟磁盘的扇区大小(以字节为单位)。
Identifier
虚拟磁盘的唯一标识符。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_IDENTIFIER。
ParentLocation
具有以下成员的 结构。 将 “版本成员 ”设置为 “GET_VIRTUAL_DISK_INFO_PARENT_LOCATION”。
ParentLocation.ParentResolved
父级解析。 如果已成功解析父后备存储,则为 TRUE;否则为 FALSE。
ParentLocation.ParentLocationBuffer[1]
如果 ParentResolved 成员为 TRUE,则 包含父级后备存储的路径。
如果 ParentResolved 成员为 FALSE,则 包含搜索列表中存在的所有父路径。
ParentIdentifier
父磁盘后备存储区的唯一标识符。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_PARENT_IDENTIFIER。
ParentTimestamp
父磁盘后备存储的内部时间戳。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_PARENT_TIMESTAMP。
VirtualStorageType
包含 有关虚拟磁盘类型信息的VIRTUAL_STORAGE_TYPE结构。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE。
ProviderSubtype
提供程序特定的子类型。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE。
值 | 含义 |
---|---|
|
已修复。 |
|
可动态扩展 (稀疏) 。 |
|
差异。 |
Is4kAligned
指示虚拟磁盘是否对齐 4 KB。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_IS_4K_ALIGNED。
Windows 7 和 Windows Server 2008 R2: 在Windows 8和Windows Server 2012之前,不支持此操作。
IsLoaded
指示虚拟磁盘当前是否已装载和使用。 如果虚拟磁盘当前已装载且正在使用,则为 TRUE;否则为 FALSE。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_IS_LOADED。
Windows 8和Windows Server 2012:在 Windows 8.1 和 Windows Server 2012 R2 之前不支持此操作。
PhysicalDisk
有关虚拟磁盘所在的物理磁盘的详细信息。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_PHYSICAL_DISK。
Windows 7 和 Windows Server 2008 R2: 在Windows 8和Windows Server 2012之前,不支持此操作。
PhysicalDisk.LogicalSectorSize
物理磁盘的逻辑扇区大小。
PhysicalDisk.PhysicalSectorSize
物理磁盘的物理扇区大小。
PhysicalDisk.IsRemote
指示物理磁盘是否为远程磁盘。
VhdPhysicalSectorSize
虚拟磁盘的物理扇区大小。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_VHD_PHYSICAL_SECTOR_SIZE。
Windows 7 和 Windows Server 2008 R2: 在Windows 8和Windows Server 2012之前,不支持此操作。
SmallestSafeVirtualSize
虚拟磁盘的最小安全最小大小。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_SMALLEST_SAFE_VIRTUAL_SIZE。
Windows 7 和 Windows Server 2008 R2: 在Windows 8和Windows Server 2012之前,不支持此操作。
FragmentationPercentage
虚拟磁盘的碎片级别。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_FRAGMENTATION。
Windows 7 和 Windows Server 2008 R2: 在Windows 8和Windows Server 2012之前,不支持此操作。
VirtualDiskId
当用户首次创建虚拟磁盘以尝试唯一标识该虚拟磁盘时唯一创建的标识符。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID。
Windows 8和Windows Server 2012:在 Windows 8.1 和 Windows Server 2012 R2 之前不支持此操作。
ChangeTrackingState
虚拟磁盘的可复原更改跟踪 (RCT) 的状态。 将 Version 成员设置为 GET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE。
Windows 8.1和Windows Server 2012 R2:在Windows 10和Windows Server 2016之前,不支持此成员。
ChangeTrackingState.Enabled
是否打开 RCT。 如果 RCT 已打开,则为 TRUE;否则为 FALSE。
ChangeTrackingState.NewerChanges
自 MostRecentId 成员标识的更改发生以来,虚拟磁盘是否已更改。 如果虚拟磁盘自 MostRecentId 成员标识的更改发生后发生更改,则为 TRUE;否则为 FALSE。
ChangeTrackingState.MostRecentId[1]
更改跟踪标识符,用于标识要用作比较基础的虚拟磁盘的状态,以确定 NewerChanges 成员是否报告新更改。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 |
最低受支持的服务器 | Windows Server 2008 R2 |
标头 | virtdisk.h |