ctypes documentation lacks an example, how to pass a raw data block from Python to a C function. For example, how to pass this chunk: data = open('somefile', 'rb').read() to this function: int checkBuffer(LPSTR lpData, DWORD dwBufferLength); ?
ISTM that this code works ok. data = open('data.raw', 'rb').read() ret = checkBuffer(data, len(data)) You need to make sure that checkBuffer doesn't try to modify memory though. For mutable memory blocks use create_string_buffer().