0
HRESULT CreatePartitionEx(ULONGLONG ullOffset, ULONGLONG ullSize, ULONG ulAlign,  [in]   CREATE_PARTITION_PARAMETERS *para, IVdsAsync **ppAsync
)

当我传递参数时ppAsync = NULL,特定调用失败并返回 INVALIED 参数。

请帮我解决这个问题。

4

2 回答 2

0

我对 Createvolume() 做同样的事情,但它返回 hResult= E_InvalidArg 。第四个参数是条带大小。如果类型为 VDS_VT_STRIPE 或 VDS_VT_PaARITY,Windows 实现要求条带大小为 65536。其他卷类型没有条带化,条带大小为 0。

于 2012-08-23T08:55:13.947 回答
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,如文档所述,您应该在完成后释放它。

于 2012-08-23T05:44:38.903 回答