Category Archives: Programming

PAE patch updated for Windows 8.1

This patch allows you to use more than 3/4GB of RAM on an x86 Windows system. Works on Windows Vista SP2, Windows 7 SP0, Windows 7 SP1, Windows 8 and Windows 8.1. Instructions and source code included. Download: Before using … Continue reading

Posted in Hardware, Programming, Windows | Tagged , | 28 Comments

PAE patch updated for Windows 8

Note: An updated version for Windows 8.1 is available. This patch allows you to use more than 3/4GB of RAM on an x86 Windows system. Works on Vista, 7, 8, has been tested on Windows Vista SP2, Windows 7 SP0, … Continue reading

Posted in Hardware, Programming, Windows | Tagged , | 104 Comments

How to backup files in C++ using the volume shadow copy service (VSS)

If you’re writing a backup program, you need to be able to read and access files that are in use by other programs. The proper way to do this is to use the Volume Shadow Copy Service. The MSDN pages … Continue reading

Posted in Programming | Leave a comment

NiceVS makes Visual Studio 2012 usable again

OK, Visual Studio 2012′s new user interface isn’t that bad. But you need to get some serious work done, and you don’t want to be forced to hover your cursor over each monochrome icon to get a tooltip explaining what … Continue reading

Posted in Programming | Tagged , , | Leave a comment

EnumWindows no longer finds Metro/Modern UI windows: a workaround

In the final release of Windows 8, the EnumWindows function no longer lists Metro/Modern UI windows: Note For Windows 8 and later, EnumWindows enumerates only top-level windows of desktop apps. This change was made some time around the consumer preview … Continue reading

Posted in Programming | 6 Comments

ObQueryTypeInfo and NtQueryObject buffer overrun in Windows 8

**** Update: **** Microsoft is now aware of this bug. Here’s some output from WinDbg on Windows 8 while I was debugging a driver: These two UNICODE_STRINGs are from the OBJECT_TYPE structures of the Section and TmTx (transaction) object types. … Continue reading

Posted in Programming | Leave a comment

Introducing WJ’s Backup

Recently I became frustrated with Cobian Backup. It was the only free software I could find that: supported incremental backups, supported Volume Shadow Copy, and didn’t install a bunch of extra, useless startup entries and services. However, two things sucked: … Continue reading

Posted in Programming, Windows | Tagged , | 3 Comments

PAE patch updated for Windows 7 SP1

Note: An updated version for Windows 8 is available. This patch allows you to use more than 3/4GB of RAM on an x86 Windows system. Works on Vista and 7, has been tested on Windows Vista SP2, Windows 7 SP0 … Continue reading

Posted in Hardware, Programming, Windows | 155 Comments

The NT "reserve object"

Windows 7 introduced two new object types: UserApcReserve and IoCompletionReserve. What do these object types have in common? They’re both created using NtAllocateReserveObject. If we look inside this system call we can see that the third argument is an index … Continue reading

Posted in Programming | Tagged , , | Leave a comment

PAE patch updated for Windows 7

Note: An updated version for Windows 7 SP1 is available. This patch allows you to use more than 3/4GB of RAM on an x86 Windows system. Works on Vista and 7, has been tested on Windows Vista SP2 and Windows … Continue reading

Posted in Hardware, Programming, Windows | Tagged , , , | 67 Comments