Python ctypes para devolver una matriz de punteros de función

Estoy trabajando con un .dll que contiene una sola llamada que devuelve una matriz de punteros de función. GetMyApi () devuelve un puntero a una estructura, que es una matriz de punteros de función. Las funciones en sí tienen diferentes entradas y salidas individuales. Lo que he probado hasta ahora:

[Código C que no puedo alterar fácilmente] C:

typedef struct My_Api_V2
{
    int                 (__cdecl *IsValidInt)(int i);
    int                 (__cdecl *InvalidInt)();
    int                 (__cdecl *IsValidSize)(size_t i);
} my_Api_V2;

const my_Api_V2* GetMyApi(int version);   // This function is accessed from DLL

Esfuerzo de Pitón:

from ctypes import *

my_dll = cdll.LoadLibrary(path_to_my_dll)
my_api = my_dll.GetMyApi
my_api.argtypes[c_int]  #version number
my_api.restypes = c_void_p

firstfuncptr = my_api(2)
firstfunc = prototype(firstfuncptr)
firstfunc.argtypes[c_int]
firstfunc.restypes = c_int

test = firstfunc(23)

En este punto, solo estoy tratando de que la primera función de la lista de funciones vuelva a funcionar. Se agradece cualquier ayuda que me señale en una mejor dirección.

Respuestas a la pregunta(1)

Su respuesta a la pregunta