HRESULT CreatePartitionEx(ULONGLONG ullOffset, ULONGLONG ullSize, ULONG ulAlign, [in] CREATE_PARTITION_PARAMETERS *para, IVdsAsync **ppAsync
)
当我传递参数时ppAsync = NULL
,特定调用失败并返回 INVALIED 参数。
请帮我解决这个问题。
我对 Createvolume() 做同样的事情,但它返回 hResult= E_InvalidArg 。第四个参数是条带大小。如果类型为 VDS_VT_STRIPE 或 VDS_VT_PaARITY,Windows 实现要求条带大小为 65536。其他卷类型没有条带化,条带大小为 0。
根据文档,关于最后一个参数 - ppAsync
:
IVdsAsync 接口指针的地址,VDS 在返回时对其进行初始化。调用者必须释放接口。使用此指针取消、等待或查询操作的状态。
这意味着您应该在调用函数时提供一个实际指针作为最后一个参数。由于您提供 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
,如文档所述,您应该在完成后释放它。