Hi there!


You have found my personal website.

I am Sebastian Schöner, and you are most likely here because you enjoy programming as well.

Choose your adventure:


  • Programming Stamina

    Whenever I look back at “proper” software I have created by myself (my solo-games, or some larger tools) I am in disbelief that I ever managed to build them at all. Of course, the trick to building something like that is to take one step at a time: Nobody builds... [Read More]
  • So there's also GetFileInformationByHandleEx

    I somehow stumbled into the niche of “how to enumerate files on Windows.” Let’s take a moment to regret my life choices together, before we return to our scheduled program of “yet another API I didn’t know about.” Jokes aside, I mentioned last time that writing is a great way... [Read More]
  • How to use NtQueryDirectoryFileEx instead of FindFirstFile

    I recently covered FIND_FIRST_EX_LARGE_FETCH for FindFirstFileExW, which instructs the function to use a larger buffer for listing (or searching) files in a directory, thus saving on expensive trips down to the I/O device. Before I could even fully articulate the thought that it ought to be possible to control the... [Read More]
  • How to redirect stdout using Win32, async

    I am writing a small program that needs (wants?) to start a thousand little other processes and capture their output. I am taking this as an opportunity to finally learn more about async I/O on Windows. I have never used async I/O on Windows without a wrapper (C# makes this... [Read More]
  • How much does FIND_FIRST_EX_LARGE_FETCH help?

    Today, while looking at something rather unrelated, I stumbled over FIND_FIRST_EX_LARGE_FETCH. It’s a flag you can pass to FindFirstFileEx (FindFirstFileEx MSDN) to use bigger buffers internally, reduce the number of trips to the device, and ultimately trade memory for performance (sometimes). I somehow never noticed this flag. Raymond Chen has... [Read More]