An application is required to perform a successful
TimeInitialize call before it can call any of the other the
library functions. When it has completed the use of library, the
application must call TimeUninitialize to allow the library
to free any resources allocated on behalf of the process. Any
pending blocking or asynchronous calls in this process are canceled
without posting any notification messages, and all sockets that
were opened by the process are closed.
There must be a call to TimeUninitialize for every
successful call to TimeInitialize made by a process. In a
multithreaded environment, operations for all threads in the client
are terminated.