Top all-time · #2993
Winsider Seminars & Solutions Inc.
Company blog · windows-internals.comsecuritysystems
Winsider Seminars & Solutions Inc. is the company blog at windows-internals.com, writing about security and systems. Since 2014, 26 different Hacker News readers have linked it 36 times, most often “I/O Rings: When One I/O Operation is Not Enough”. It is still writing: the last post was on 2026-07-27, and you can follow it by feed.
Too few sampled comments (23) to say how often HN recommends it.?
Why HN links it
Windows internals and security research by Yarden Shafir and Alex Ionescu, covering NT kernel I/O (I/O Rings vs io_uring) and vulnerability analyses such as the PrintDemon bug (CVE-2020-1048).
Summarised by Claude from a sample of 23 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- I/O Rings: When One I/O Operation is Not Enough9 people · 11 mentions · first linked 2021-05-24
- IoRing vs. io_uring: a comparison of Windows and Linux implementations6 people · 8 mentions · first linked 2023-04-12
- Printdemon Print Spooler Privilege Escalation CVE 2020-10485 people · 5 mentions · first linked 2020-05-14
What Hacker News says?
https://windows-internals.com/i-o-rings-when-one-i-o-operati... https://docs.microsoft.com/en-us/windows/win32/api/ioringapi...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Serving Netflix Video at 400Gb/s on FreeBSD [pdf]”Submitted I/O Rings: When One I/O Operation is Not Enough as a story · 78 points
HN discussionForgot to check for replies. In particular, I was thinking of this blog post: https://windows-internals.com/exploiting-a-simple-vulnerabil... Thanks for the correction, sorry I typoed her name. Here's a tweet from the original finder: https://twitter.com/gabe_k/status/1330966182543777792?s=20 Yarden & Ionescu's work are both really top notch. Also anything by Google Project Zero if you want to do a deep dive on the…
Comment linking /exploiting-a-simple-vulnerability-in-35-easy-steps-or-less/
on “SolarWinds hackers were able to access Microsoft source code”Submitted RIP ROP: CET Internals in Windows 20H1 as a story · 72 points
HN discussionI tried Googling to find this blog post. Did you mean to write Yarden Shafir? If yes, maybe it was this blog post? https://windows-internals.com/printdemon-cve-2020-1048/ I also found another hint about their findings in this PDF written by Yarden's co-researcher Alex Ionescu: https://www.usenix.org/system/files/woot20_slides_ionescu.pd... . One of the slides specifically mentions the use of fuzzing tools to find th…
Comment linking /printdemon-cve-2020-1048/
on “SolarWinds hackers were able to access Microsoft source code”Submitted Windows 10 Technical Preview Source Tree as a story · 38 points
HN discussionIs this new async. I/O feature for Linux only? I know Windows has IOCP and also now an IORing implementation of its own (Less familiar with macOS capabilities other than POSIX AIO). https://learn.microsoft.com/en-us/windows/win32/api/ioringap... Update: Most of the comments below seem to be missing the fact that Windows now also has an IORing implementation, as I mentioned above. Comparison article here: https://win…
Comment linking /ioring-vs-io_uring-a-comparison-of-windows-and-linux-implementations/
on “Waiting for Postgres 18: Accelerating Disk Reads with Asynchronous I/O”Submitted Printdemon Print Spooler Privilege Escalation CVE 2020-1048 as a story · 3 points
HN discussionIt allows you to do something else while waiting for the request to complete. Linux has historically bad hacks to enable this. Windows NT has had IOCP since it's inception, but not only for storage devices, as io_uring is limited to, but networking, TCP sockets, mail slots, named pipes, etc. "Are you done yet?" vs "Get back to me when you're ready, gonna go do something else". Aka blocking i/o vs nonblocking i/o. (I…
Comment linking /ioring-vs-io_uring-a-comparison-of-windows-and-linux-implementations/
on “SQLite: 35% Faster Than the Filesystem”Submitted PrintDemon: Print Spooler Privilege Escalation Persistence Stealth CVE-2020-1048 as a story · 2 points
HN discussionSeems windows is getting ring buffers based io too, eventually: https://windows-internals.com/i-o-rings-when-one-i-o-operati... Not identical to io_uring, but close enough that porting between them will probably be quite simple.
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Steam survey shows Linux marketshare hitting 1.0%”Submitted IoRing vs. io_uring: a comparison of Windows and Linux implementations as a story · 1 points
HN discussionBtw Windows built an api based on io_uring https://windows-internals.com/i-o-rings-when-one-i-o-operati...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Steam survey shows Linux marketshare hitting 1.0%”Submitted One I/O Ring to Rule Them All: A Full Read/Write Exploit Primitive on Windows 11 as a story · 1 points
HN discussion- ot · 2021-06-17
Yes, and now things are going full circle and windows is adopting the ring model too. https://windows-internals.com/i-o-rings-when-one-i-o-operati...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Io_uring is not an event system” Submitted An Exercise in Dynamic Analysis as a story · 1 points
HN discussionInterestingly io_uring was added to NT. https://windows-internals.com/i-o-rings-when-one-i-o-operati...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “ExectOS – brand new operating system which derives from NT architecture”Submitted R.I.P ROP: CET Internals in Windows 20H1 as a story · 1 points
HN discussionIt did, then io_uring leapfrogged it, and now Windows is moving towards adding a ring-based IO submission system: https://windows-internals.com/i-o-rings-when-one-i-o-operati...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “The Google Nest Hub is first commercial Fuchsia device”Submitted Faxing Your Way to System – Part Two as a story · 1 points
HN discussionIn Windows 10/11 the core of the Windows kernel can run in a virtual machine totally separated from the rest of the kernel. > HyperGuard takes advantage of VBS – Virtualization Based Security > Having memory that cannot be tampered with even from normal kernel code allows for many new security features > This is also what allows Microsoft to implement HyperGuard – a feature similar to PatchGuard that can’t be tamper…
Comment linking /hyperguard-secure-kernel-patch-guard-part-1-skpg-initialization/
on “A call to reconsider memory address-space isolation in Linux”IOCP, which originated in NT 3.1, is not a circular buffer like io_uring, but both are completion-oriented. Microsoft introduced I/O Rings, more or less a 1:1 copy of io_uring, in Windows 21H1. https://learn.microsoft.com/en-us/windows/win32/api/ioringap... https://windows-internals.com/i-o-rings-when-one-i-o-operati... https://windows-internals.com/ioring-vs-io_uring-a-compariso... Windows 8/2012 R2 did introduce R…
Comment linking /ioring-vs-io_uring-a-comparison-of-windows-and-linux-implementations/
on “Windows 2000 Server named peak Microsoft”And io_uring is good enough that NT is copying the concept wholesale. https://windows-internals.com/i-o-rings-when-one-i-o-operati...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Steve Jobs tried to convince Dell to license Mac software”Eh, it's io-uring is pretty different too, which is why NT just added a clone of io-uring. https://windows-internals.com/i-o-rings-when-one-i-o-operati...
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Steve Jobs tried to convince Dell to license Mac software”This is pure speculation, but they may have changed it to foo==false. In C a boolean is just a byte which conventionally has the values 0 or 1, but an attacker which controls a boolean can give it the value of 2, and 2!=true and 2!=false. This has lead to real exploits: https://windows-internals.com/exploiting-a-simple-vulnerabil... When writing C or C++, never compare against true.
Comment linking /exploiting-a-simple-vulnerability-in-35-easy-steps-or-less/
on “That’s not why I did it”I think the key problem is that it's very old; almost certainly the core code dates from NT, possibly earlier. Longer analysis: https://windows-internals.com/printdemon-cve-2020-1048/ The core is: a) you can set up a printer port that prints to a file b) no admin privilege is required to do this, just a check on the ownership of the file c) the ownership check is in the wrong place, so you can just create a port tha…
Comment linking /printdemon-cve-2020-1048/
on “Stuxnet's Legacy Lives on in New Windows Bug”It's worth reading the full technical analysis https://windows-internals.com/printdemon-cve-2020-1048/ It's well written and easy to follow even for someone that doesn't know much about Windows security. And if you didn't read it the bug comes from the fact that the Powershell command Add-PrinterPort can be used to add a printer port as a file that you don't have access to. After restarting the spooler service you c…
Comment linking /printdemon-cve-2020-1048/
on “Stuxnet's Legacy Lives on in New Windows Bug”I wasn't referring to async I/O. I'm talking about the ability to make system calls using a user/kernel shared memory buffer, without having to enter and exit the kernel. (This is particularly important with all the security mitigations that make kernel entry/exit more expensive.) https://windows-internals.com/ioring-vs-io_uring-a-compariso...
Comment linking /ioring-vs-io_uring-a-comparison-of-windows-and-linux-implementations/
on “Lord of the Io_uring (2020)”Following that through to the blog post ([1]), it's interesting how much new API they had to add. The Windows IO API is already completion-style (as opposed to epoll, etc's readiness-style) - userspace submits an async operation to the kernel, blocks on a channel to receive its result, and the kernel enqueues the result to said channel when it's done. So I naively assumed that they'd "just" have to refit io_uring's…
Comment linking /i-o-rings-when-one-i-o-operation-is-not-enough/
on “Monoio – A thread-per-core Rust async runtime with io_uring”> I think you missed the point: io_uring is the newer API. GP was pointing out that io_uring came after RIO; RIO has similar capabilities to io_uring for the network space. GP did not "miss the point". > Microsoft understand quite well that they have pervasive issues with IO performance This has nothing to do with IOCP but rather the file system filters. This is why removal of file system filters from "DevDrive" (a…
Comment linking /ioring-vs-io_uring-a-comparison-of-windows-and-linux-implementations/
on “Asynchronous IO: the next billion-dollar mistake?”