Microsoft Windows: Atomic ops and memory barriers

Introduction This post examines what the Microsoft’s compiler does in response to a variety of special functions that implement atomic operations and memory barriers. If you program like a civilized human being, that is with spinlocks and mutexes, this is a lot of things you should never need to care about. I’ve written a similar [...]

Windows trusting many more Root Authorities than certmgr shows

This baffled me for a while: I used certmgr to see if a Windows 10 machine had a root certificate that was needed to certify a certain digital signature, and it wasn’t listed. But then the signature was validated. And not only that, the root certificate was suddenly present in certmgr. Huh? Here’s a quick [...]

Attestation signing of Windows device driver: An unofficial guide

Introduction This is my best effort to summarize the steps to attestation signing for Windows drivers (see Microsoft’s main page on this). I’m mostly a Linux guy with no connections inside Microsoft, so everything written below is based upon public sources, trial and (a lot of) error, some reverse engineering, and speculations. This couldn’t be [...]

Linux Wine jots

General These are just a few jots on Wine. I guess this post will evolve over time. I’m running Wine version 4.0 on Linux Mint 19, running on an x86_64. First run Every time Wine is run on a blank (or absent) directory given by WINEPREFIX, it installs a Windows environment. Which Windows version an [...]

Microsoft’s outlook.com servers and the art of delivering mails to them

Introduction Still in 2020, it seems like Microsoft lives up to its reputation: Being arrogant, thinking that anyone in business must be a huge corporate, and in particular ending up completely ridiculous. Microsoft’s mail servers, which accept on behalf of Hotmail, MSN, Office 365, Outlook.com, or Live.com users are no exception. This also affects companies [...]

Jots on named pipes (FIFOs in Linuxish)

Major disclaimer These are pretty random jots that I made while evaluating named pipes as a solution for project. I eventually went for a driver in the kernel for various reasons, so I never got to verify that anything written below is actually correct. I’ve also written a small post on epoll with named pipes [...]

Linux: Writing a Windows MBR instead of grub

On a test computer, I use /dev/sda1 to contain whatever operating system I need for the moment. At some point, I installed Linux Mint 19.1 properly on that partition, and then I wanted to return to Windows 10. After writing the Windows 10 image to /dev/sda1, I got a message from grub saying it didn’t [...]

Windows 10 is Windows 7 with a new-old skin

… with one little difference: It seems like you can install Windows 10 without any product key. According to this post, one can install Windows 10 from scratch, and when prompted for the product key, click “Skip for now”. Twice. The installation will have this “Activate Now” watermark, and personalization will be off. But otherwise, [...]

Moving a Windows 7-installed hard disk to a new computer

This has been documented elsewhere, but it’s important enough to have a note about here. In short, before switching to a new hardware, it’s essential to prepare it, or an 0x0000007b blue screen will occur on the new hardware. The trick is to run sysprep.exe (under windows\system32\sysprep\) before the transition. Have “Generalize” checked, and choose [...]

Windows 8 recovery notes-to-self

Just some jots as I tried to fix a Windows 8.1 laptop that didn’t boot (not mine, of course, I can’t stand Windows 8). It went “Preparing automatic repair” immediately on powerup, and then a light blue (not BSOD-blue) screen saying “Automatic Repair”, “Your PC did not start correctly”. Offering me to Restart or “Advanced [...]