Лучшим вариантом может быть буферный протокол (http://docs.python.org/c-api/buffer.html).
Из кода C (например, сгенерированного кода) вы можете получить указатель на базовые данные C, обратившись к этому интерфейсу.
Обратите внимание, что есть две версии интерфейса буфера, объекты ctypes вPython 2.x представит старый протокол, а в Python 3.x - новый.
Вам придется перейти на уровень API Python C, но только один раз, если вы все закончите хорошо -например, возможно сделать функцию% inline, возвращающую void * для всего, что поддерживает буферный протокол, и использовать это в картах типов для ваших типов обратного вызова.