Windows has copied io_uring from Linux.
What Linux still lacks is an OVERLAPPED data structure.
NT has supported async I/O since it's inception. It was a design principle of the kernel -- all I/O operations in the kernel are async'ed.
https://windows-internals.com/ioring-vs-io_uring-a-compariso...
https://serverframework.com/asynchronousevents/2011/10/windo...
So if we're talking about concepts... NT first, again ;-)