When using external calls:
The external routine must adhere to the OpenVMS Procedure Calling and Condition Handling Standard.
When input and output lines specify the same data, that is, the external routine both reads and writes the data, the MECHANISM and TYPE must be the same in both lines. Specifying incompatible MECHANISMs and TYPEs between the two lines produces an error.
The external routine should never modify output descriptors except as described in the section on "Receiving String Arguments from External Routines".