Windows имеет несколько API асинхронного ввода-вывода. Перекрытый ввод-вывод можно считать расширением обычных функций ввода-вывода. А для высокой производительности и масштабируемости есть порты завершения ввода / вывода.
(асинхронность .NET имеет мало общего с асинхронным вводом-выводом. Это конструкция на уровне языка для выполнения чего угодно в асинхронном режиме)