IVdsDisk3::QueryFreeExtents 方法 (vds.h)
[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]
返回磁盘上的可用盘区,并将其与指定的对齐大小对齐。
语法
HRESULT QueryFreeExtents(
[in] ULONG ulAlign,
[out] VDS_DISK_FREE_EXTENT **ppFreeExtentArray,
[out] LONG *plNumberOfFreeExtents
);
参数
[in] ulAlign
对齐大小(以字节为单位)。 此值必须是磁盘扇区大小的倍数。 如果此参数为零,则使用卷的默认对齐值。 默认对齐方式取决于卷所在的磁盘大小。 所有分区和卷都使用以下注册表项下的值进行对齐:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment
如果未设置此注册表项,则默认对齐方式为 1 MB(如果磁盘为 4 GB 或更大),如果磁盘小于 4 GB,则默认对齐方式为 64 KB。
[out] ppFreeExtentArray
接收 的指针变量的地址
VDS_DISK_FREE_EXTENT结构的数组,每个可用区各一个。
调用方必须使用 CoTaskMemFree 函数释放此数组。 如果没有可用区,则指针在输出时设置为 NULL ,无需释放。
[out] plNumberOfFreeExtents
指向接收 VDS_DISK_FREE_EXTENT 结构总数的变量的指针。 如果没有可用区,则指针在输出时设置为 NULL ,无需释放。
返回值
此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。
返回代码/值 | 说明 |
---|---|
|
已成功返回自由区信息。 |
|
磁盘上没有可用盘区。 |
|
ulAlign 参数中指定的对齐值不是磁盘扇区大小的倍数。 |
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | vds.h |