It turns out that VDDK 6.0 async support is present but broken, which
makes it hard to support this version. If it was missing we could use
an alternative codepath, but present-and-broken is difficult to deal
with. (There is no way to detect VDDK versions at run time.)
Specifically it's a problem because the completion callback API
changed between 6.0 and 6.5:
< typedef void (*VixDiskLibCompletionCB)(void *cbData, uint64 sector,
< VixError result);
typedef void (*VixDiskLibCompletionCB)(void *cbData, VixError
result);
Since the sector number parameter is usually != 0 and it masks the
result parameter in the later API we think that every async call is
returning an error.
I think we would need to require VDDK 6.5 for this change. That was
released in November 2016 (5 years ago) and updating VDDK is no big
deal.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW