Ros 2 type support functions

I have seen that ros idl generates type support header files for every type of messages. Is this header files used in RMW layers or in the DDS layers ?

Some type supports are not specific to the rmw. impl and are being used by multiple different ones (e.g. rosidl_typesupport_introspection_cpp). Others are specific to one rmw implementation and defining between the ROS types and the DDS types using the vendor specific API (e.g. rosidl_typesupport_connext_cpp).