DUPLICATE_EXTENTS_DATA duplicate;
memset( &duplicate, 0xcc, sizeof duplicate );//explicit filling garbage
duplicate.FileHandle = source;
duplicate.SourceFileOffset = /* Proper offset */;
duplicate.TargetFileOffset = /* Proper offset */;
duplicate.ByteCount.QuadPart = /* Proper size */;
ULONG BytesReturned;
DeviceIoControl( destination, FSCTL_DUPLICATE_EXTENTS_TO_FILE, &duplicate, sizeof duplicate, NULL, 0, &BytesReturned, NULL );
above DeviceIoControl calls from 32-bit apps always fail with INVALID_FILE_HANDLE.
It's rare, padding will be 0, even if won't expicit filling.
I'm already using ReFS 22.2.
Are not talking about a DeviceIoControl fails with ERROR_INVALID_FUNCTION.