`readFileData` is a little strange. `readFile` will make sense.
Microsoft use the file API like `ReadFile`, `WriteFile`.
Since `readFile` return data of course. So do we need the long one `readAndAllocateFileData`?