Passando um ponteiro de JNI para Java usando um @ lon

Estou tentando passar uma estrutura como um ponteiro de JNI para Java para poder passar mais tarde de Java para JNI. Eu li este tópico:Passando ponteiros entre C e Java através de JNI, mas não obtive sucesso.

Tenho uma estrutura bastante complexa:struct myStruct_s myStruct;

Do Java, chamo uma função JNI para inicializar a estrutura e retornar um longo (ponteiro para a estrutura):

JNIEXPORT jlong JNICALL Java_example_ExampleJNI_getStruct(JNIEnv *jenv, jclass jcls) {
    struct myStruct_s mystruct;
    long *lp = (long*)&myStruct;
    return lp;
}

Então eu chamo um método Java com esse argumento longo. No JNI, quero poder usar o strcuture criado anteriormente. Eu faço assim:

JNIEEXPORT jint JNICALL Java_example_ExampleJNI_methode1(JNIEnv *jenv, jclass jcls, jlong jarg) {
    struct myStruct_s *arg = (struct myStruct_s *)&jarg;
    ...
}

Bem, isso não funciona. Eu acho que meu elenco do longo na estrutura está errado. Como devo fazer isso? Obrigado

EDITA: Obrigado pelas dicas, aqui estão as funções de trabalho

JNIEXPORT jint JNICALL Java_example_ExampleJNI_methode1(JNIEnv *jenv, jclass jcls, jlong jarg) {
    struct myStruct_s *arg;
    arg = (struct myStruct_s *)jarg;
    ...
} 

JNIEXPORT jlong JNICALL Java_example_ExampleJNI_getStruct(JNIEnv *jenv, jclass jcls) {
    struct myStruct_s *myStruct;
    myStruct = (struct myStruct_s *)malloc(sizeof(struct myStruct_s));
    long lp = (long)myStruct;
    return lp;
}

questionAnswers(3)

yourAnswerToTheQuestion