_>Сказать хотел, что никаких реальных асинхронных вызовов там нет. Вот железо действительно асинхронно (см. прерывания), драйверы винды тоже (собственно они в итоге прерывания и обрабатывают), а вот далее вся асинхронность резко кончается. В пользовательском процессе у нас наблюдается тот же самый банальный поток, ждущий сообщения из очереди.
Асинхронность состоит в том, что пользовательский поток вовсе не обязан все время ждать сообщения. Он может заниматься чем-то другим и периодияеки обрабатывать что там ему наприходило.
Как много веселых ребят, и все делают велосипед...