Když přehlédnu, že kód nevypadá zrovna moc Pythonovsky (import všeho z ctypes, názvy proměnných), tak:
myDataBufe = c_uint8 * DFSD_DATA_BLOCK_SIZE # definuješ typ, tady pole unsigned char pevné velikosti
myData = myDataBufe() # vytvoříš instanci, tj. teprve tady si alokuješ v paměti pole a instanci přiřadíš do proměnné
...
myDataBufe.append(hex_int) # to spadne už jen z důvodu, že do typu chceš přidat položku
myData.append(hex_int) # asi to bylo myšleno takto, ale to taky spadne, protože pole není dynamické (jako list v Pythonu), ale pevné velikosti
myData[0] = 123 # takže s tím pracuj jako s polem, na pozici 0 dáme 123, to funguje
myData[1] = 345 # na pozici 1 dáme 345, to sice projde, ale co se stane?
list(myData) # mělo by tam být 345, ale je tam 89, pozor na přetečení/podtečení, v ctypes už Python chyby neodpustí