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).

  1. gta_instance_handle_t h_inst;
  2. gta_context_handle_t h_ctx = GTA_HANDLE_INVALID;
  3. gta_errinfo_t errinfo;
  4. bool b_loop_pers = true;
  5. gta_enum_handle_t h_enum_pers = GTA_HANDLE_ENUM_FIRST;
  6. while (b_loop_pers) {
  7. char pers_name[STR_LEN_MAX];
  8. myio_obufstream_t ostream_pers_name = { 0 };
  9. myio_open_obufstream(&ostream_pers_name, pers_name,
  10. sizeof(pers_name), &errinfo);
  11. if (gta_personality_enumerate_application(h_inst,
  12. "IDevID", h_enum_pers, GTA_PERSONALITY_ENUM_ALL,
  13. (gtaio_ostream_t *)&o_pers_name, &errinfo)) {
  14. /*
  15. * do something with personality pers_name
  16. */
  17. }
  18. else {
  19. b_loop_pers = false;
  20. }
  21. myio_close_obufstream(&ostream_pers_name, &errinfo);
  22. }
  23. }