If you want to create an object that is like in the picture spun around a cylinder, i would suggest to use the screw modifier to get the base shape of the object and later fine tune the result.
- Create a curve starting at the outside of the cylinder, making sure the origin is at the center of the cylinder.
- Shape the curve to the form you want, like bottom, railing and maybe the late to be stairs... up to your imagination, or references.
- Add a screw modifier and adjust the screw value to make it increase in height, like in your reference picture.
- Increasing the Angle and Steps value will make it wrap around the cylinder more often and make it smoother. Consider this though for later editing. The more now the harder time for you later.
- Fine tune and adjust and from here you can work either with boolean operations and try to stay non-destructive or apply the modifier and go creative in what ever way you desire.
Here a little visual showcase with a simplified version of the reference picture like result:
As shown/mentioned in the answer from @Robin-Betts, the option to create the cylinder along with the object originally being wrapped around it is there, and in certain cases i would go with that, as it makes sure the geometry is clean and fitting (important here though is to enable Merge Vertices to keep the geometry free from unnecessary double vertices).
Based on the question i believe you were going from a cylinder (not that those usually are hard to create) but maybe you have already some more details on it and don't want to redo your work.
If you have already some cylinder shape, it might be a good idea to adjust the Angle and Steps value to match the cylinder/base objects vertex count. That way the two objects will be easier to connect, be it on vertex and edge level or just visual in case you want them to be separate.