NULL is OK, both for passing and for returning.
Parameter for returning results. Default is transfer full.
The caller owns the data, and is responsible for free it.