http://bugs.winehq.org/show_bug.cgi?id=28898
--- Comment #24 from Erich Hoover ehoover@mines.edu 2012-02-05 18:43:42 CST --- (In reply to comment #22)
This seems to be caused by GetQueuedCompletionStatus not working properly when socket gets closed. It should dequeue completion packet setting last error to ERROR_OPERATION_ABORTED. Have only a hack so far and that still results in a crash after some time passes (though it is downloading till the crash).
I'm curious what your hack is, it seems that the "Failed to run a required program (Agent)." problem partially results from the first run of the agent not closing properly. Removing AcceptEx support allows the agent to exit cleanly if you run it manually (not from the D3 installer).