Raw native interface (RNI) uses certain structures to access Java arrays and wrap native code for the Microsoft virtual machine (Microsoft VM).
The ThreadEntryFrame and GCFrame structures are used in several RNI functions, but are not manipulated directly by the user.
The ClassArrayOf* structures all share the same architecture. The MSReserved field is reserved for the Microsoft VM. Each structure contains a length and body field. The body field is a variable length array, with the array's length stored in the length field.
Structures that handle strings and arrays of strings have different architecture because the Microsoft VM handles strings differently in certain situations.
The following structures are defined in the Native.h header file.
ArrayOfSomething | Serves as a base structure from which others that access Java arrays are derived. |
C2JMethodHookInfo | Information structure for COM-to-Java custom method hook. |
ClassArrayOfArray | Accesses Java two-dimensional arrays from native RNI code. |
ClassArrayOfByte | Accesses Java arrays of bytes from native RNI code. |
ClassArrayOfChar | Accesses Java arrays of characters from native RNI code. |
ClassArrayOfDouble | Accesses Java arrays of doubles from native RNI code. |
ClassArrayOfFloat | Accesses Java arrays of floats from native RNI code. |
ClassArrayOfInt | Accesses Java arrays of integers from native RNI code. |
ClassArrayOfLong | Accesses Java arrays of long type primitives from native RNI code. |
ClassArrayOfObject | Accesses Java arrays of Objects from native RNI code. |
ClassArrayOfShort | Accesses Java arrays of short type primitives from native RNI code. |
ClassArrayOfString | Accesses Java arrays of String types from native RNI code. |
GCFrame | Wraps a garbage collection frame from native RNI code. |
J2CMethodHookInfo | Information structure for Java-to-COM custom method hook. |
ThreadEntryFrame | Used in the PrepareThreadForJava and UnprepareThreadForJava functions. |