The exit receives control in AMODE(64) if the callable service was invoked in AMODE(64); otherwise the exit receives control in AMODE(31). If you have a callable service exit for a service which supports invocation by an AMODE(64) caller, you must recode your exit to be sure it can handle being invoked in AMODE(64) when running with ICSF HCR7720 or later.
The exits can change the characteristics during their processing. However, the exits must return to their caller with the same characteristics as on entry.
You must write the exits in assembler, because you are in AR and cross memory mode and the addresses of some of the parameters you may access are ALET-qualified. In particular, parameters passed into a service are in the user's address space which you can access with an ALET of 1.
For information about cross memory and AR mode, see z/OS MVS Programming: Extended Addressability Guide.