The function nni_get_interface
                          returns a pointer to an instance of the Natural Native Interface. One interface
                          instance can host one Natural session at a time. An application initializes a
                          Natural session by calling the function nni_initialize on a given
                          interface instance. It uninitializes the Natural session by calling
                          nni_uninitialize on that
                          interface instance. After that it can initialize a new Natural session on the
                          same interface instance.
               
It is implementation dependent if multiple interface instances and
                          thus multiple Natural sessions can be maintained per process or per thread. In
                          the current implementation of Natural on Windows, UNIX and OpenVMS, one process
                          can host one Natural session at a time. Consequently, every call to
                          nni_get_interface in
                          one process yields the same interface instance. However, this unique interface
                          instance can be used alternating by several concurrently running threads. The
                          thread synchronization is implicitly performed by the interface functions
                          themselves. Optionally it can be performed by the application explicitly. The
                          interface provides the required synchronization functions
                          nni_enter,
                          nni_try_enter and
                          nni_leave.