The DisconnectClient method will close the control channel, disconnecting the
client from the server and terminating the client session thread. Resources that we allocated for the client,
such as memory and open handles, will be released back to the
operating system. If the client was in the process of transferring a
file, the transfer will be aborted. This performs the same operation
as if the client sent the QUIT command to the server.
This method sends an internal control message that notifies the
server that this session should be terminated. When the session thread
is signaled that it should terminate, it will abort any active file
transfers and begin to release the resources allocated for that
session. To ensure that the client session terminates gracefully,
there may be a brief period of time where the session thread is still
active after this method has returned.
After this method returns, the application should never use the
same client ID with another method. Client IDs are unique to the
session over the lifetime of the server, and are not reused.