IVdsPack::CreateVolume
IVdsPack::CreateVolume
本文关键字:CreateVolume IVdsPack 更新时间:2023-10-16
HRESULT CreatePartitionEx(ULONGLONG ullOffset, ULONGLONG ullSize, ULONG ulAlign, [in] CREATE_PARTITION_PARAMETERS *para, IVdsAsync **ppAsync
)
当我传递参数 ppAsync = NULL
时,perticular 调用失败并返回 INVALIED 参数。
请帮我解决这个问题。
根据文档,关于最后一个参数 - ppAsync
:
VDS 初始化的 IVdsAsync 接口指针的地址 返回时。调用方必须释放接口。使用此指针 取消、等待或查询操作的状态。
这意味着在调用函数时应提供一个实际指针作为最后一个参数。由于您提供的是 NULL,因此可能导致问题。
编辑:
像这样使用:
IVdsAsync *pAsync; // Declare a pointer
// Then use it like this (take a look at the last parameter)
CreatePartitionEx(
ullOffset,
ullSize,
ulAlign,
para,
&pAsync); // You pass it with a leading &, which gives you the address of the pointer
这应该可以做到。
请记住,如文档所述,您应该在完成pAsync
后将其释放。
我正在用 Createvolume(( 做同样的事情,但它返回的 hResult= E_InvalidArg 。第四个参数是 条纹大小 。如果类型为 VDS_VT_STRIPE 或 VDS_VT_PaARITY,则 Windows 实现要求条带大小为 65536。其他卷类型不条带化,条带大小为 0。