The game DLL and the server communicate through a couple of APIs. In this context, API means a structure if function pointers, very much like the foundation of Micrsofts COM architecture or C++ vtables.
The game DLL receives a game_import_t pointer and the server receives a game_export_t pointer, each constituting an API.
This means that the DLL only needs a single entry point in its export table: the GetGameAPI function. It is used for exchanging APIs, and after that all calls are made through the APIs.