VIO and EKF2 are separate, concurrent state estimations. You can see where voxl-vision-hub sends the VIO data to PX4's EKF2 here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-vision-hub/-/blob/master/src/vio_manager.c?ref_type=heads#L395
I'm not sure what mavros uses, but here is the mpa-to-ros code to publish VIO data https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-to-ros/-/blob/master/catkin_ws/src/src/interfaces/vio_interface.cpp?ref_type=heads#L151