When calling the VixDiskLib_GetMetadataKeys function with a buffer length of zero, the function computes how much buffer space is needed and returns VIX_E_BUFFER_TOOSMALL. The caller then allocates the appropriate sized buffer and calls VixDiskLib_GetMetadataKeys again.
This issue occurs due to the way in which the VixDiskLib_GetMetadataKeys API works.