A.1.1 Enumerating all personalities by application

The example below enumerates all personalities with application “IDevID”. This can be useful to select personalities usable for onboarding (cf. 5.2.2, Figure 9).

gta_instance_handle_t h_inst;
gta_context_handle_t h_ctx = GTA_HANDLE_INVALID;
gta_errinfo_t errinfo;

bool b_loop_pers = true;
gta_enum_handle_t h_enum_pers = GTA_HANDLE_ENUM_FIRST;

while (b_loop_pers) {
    char pers_name[STR_LEN_MAX];
    myio_obufstream_t ostream_pers_name = { 0 };

    myio_open_obufstream(&ostream_pers_name, pers_name,
                         sizeof(pers_name), &errinfo);

    if (gta_personality_enumerate_application(h_inst,
            "IDevID", h_enum_pers, GTA_PERSONALITY_ENUM_ALL,
            (gtaio_ostream_t *)&o_pers_name, &errinfo)) {
        
             /* 
              * do something with personality pers_name 
              */            

        }
        else {
            b_loop_pers = false;
        }
        myio_close_obufstream(&ostream_pers_name, &errinfo);
    }
}