Leyendo un archivo mientras está siendo escrito por otro proceso

Estoy intentando leer datos binarios de un archivo de búfer en el que se escribe continuamente mediante un proceso diferente (que no puedo modificar). Estoy usando el siguiente código para abrir el archivo:

fileH = CreateFileA((LPCSTR)filename,
                    GENERIC_READ,
                    FILE_SHARE_READ | FILE_SHARE_WRITE,
                    NULL,
                    OPEN_EXISTING,
                    FILE_ATTRIBUTE_NORMAL, NULL);

Y se abre correctamente sin error. Sin embargo, cuando leo datos del archivo, parece que impide que el otro proceso escriba en el archivo ya que pierdo datos.

El búfer es circular, lo que significa que el tamaño del archivo es fijo, y los datos nuevos se escriben constantemente sobre los datos más antiguos en el búfer.

EDITAR: A veces la solución más trivial funciona ...

Me puse en contacto con la compañía de software y les conté sobre el error, y en un día publicaron una nueva versión con una solución. Lo siento, esto no puede funcionar para todos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta