This function has some properties that are not very nice.
- Sometimes, it throws INVALID_HANDLE exception, particularly, when it mariadbd runs under debugger.
- Sometimes, it closes error log in the middle, particularly when debugging service.
- It does not close console, if the console was not created by mariadbd itself
- Ctrl-C stops working, and mariadbd can only be killed "hard" with taskkill /force
The only functionality it provides is remove the window when a GUI application launches mysqld in a user session, but this does not seem to have huge importance. That very same functionality is available with CreateProcess() with dwCreationFlags = CREATE_NO_WINDOW Also available on many scripting languages on Windows, and as a shortcut property for the Windows shortcuts.
Also note, that MySQL 8.0 got rid of FreeConsole() as well.