RnaSessInitialize

DWORD
APIENTRY RnaSessInitialize(LPSTR lpszType, LPRNA_FUNCS lpRnaFuncs)
 

is called by RNA after loading the SMM to request for SMM entry points for the specified SMM type which RNA can call during the session configuration. The function also allows the SMM to initialize itself and allocate any resource for the specified SMM type.

lpszType
An address to a null-terminated string for the SMM type.
lpRnaFuncs
An address to an RNA_FUNCS structure to receive the addresses for other SMM entry points. On entry, the first DWORD of this structure is filled by RNA with the size of the RNA_FUNCS structure.

This is the only function that must be exported from the SMM. Since it can be exported only once per an SMM module, the function can return different entry points in the RNA_FUNCS structure for different SMM types if the module supports different SMM types.