[#BIO_callback_fn_ex]
= BIO&lowbar;callback&lowbar;fn&lowbar;ex
:mrdocs:

Extended BIO callback invoked immediately before and after I&sol;O operations&period;

== Synopsis

Declared in `&lt;openssl&sol;bio&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
typedef long(* BIO&lowbar;callback&lowbar;fn&lowbar;ex)(xref:BIO.adoc[BIO]*, int, char const*, size&lowbar;t, int, long, int, size&lowbar;t*);
----

== Return Value

Post&hyphen;call return value (usually `ret` unchanged)&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *b*
| BIO performing the operation&period;
| *oper*
| BIO&lowbar;CB&lowbar;&ast; operation code OR&apos;d with BIO&lowbar;CB&lowbar;RETURN after the call&period;
| *argp*
| Pointer argument (buffer or ctrl pointer), or NULL&period;
| *len*
| Byte count associated with the operation when applicable&period;
| *argi*
| Integer argument for ctrl&hyphen;style operations&period;
| *argl*
| Long argument for ctrl&hyphen;style operations&period;
| *ret*
| Return value from the underlying operation (post&hyphen;call only)&period;
| *processed*
| Optional in&sol;out processed&hyphen;byte count for read&sol;write&sol;mmsg operations&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
