No se cual es la pregunta en particular y hay mucho codigo, lee la referencia de la funcion:
ReadFile.
El primer parametro es el HANDLE al archivo, lo devuelve CreateFile, el segundo es un puntero a l buffer de lectura, el tercero es el tamaño del buffer de lectura, el cuarto es un puntero a una variable donde el S.O. escribe el tamaño leido y el quinto podes obviarlo y pasar NULL (0).