When you're setting up MoveBlock, you absolutely should be using the Variant structure, and ignore the USBPxxPARAMETERS structure you posted earlier. I don't know why Alligator support would have suggested you need that structure, but it is obvious from their sample code code that they are using a Variant, and copying individual values from the Variant into the parameters structure, for example:
void readLPFC (USBPxxPARAMETERS *d) {
VARIANT InVal;
VARIANT OutVal;
pIUSBPxxS1Ctl->USBPxxS1Command(d->DeviceHandle, ID_READ_LPFC, &InVal, &OutVal);
d->LPFc = OutVal.fltVal;
}
The fltVal element is a member of the Variant structure, not of the parameters structure.