x64 calling convention

Many of you are probably already familiar with the x64 calling convention1 2 in 64-bit Windows – where generally speaking first four parameters3 are passed in registers RCX, RDX, R8 and R9 with 32 bytes of spill area reserved


Vista/2008 Service Pack 2 is out

Microsoft has made Windows Vista and Windows Server 2008 Service Pack 2 (Build 6.0.6002.18005) available for public download. You can get x86 stand-alone installer (348.3 MB) from here and the x64 SP2 (577.4 MB) from here.


Improving driver diagnostics

TRoy, a good friend and ex-colleague of mine, presented at Microsoft Global Escalation Conference 2009 about how programmers can help improve driver diagnostics and “support support” when hard to reproduce problems are reported and all you have is a memory dump. He shows several techniques complete with short examples of each and how each technique [...]


Layered Service Providers in Vista/64-bit

Layered Service Providers (LSPs) are user mode dlls that allow one (most usefully) to be in network packet chain and thus can change (think encryption/compression) or inspect (think sniffing) buffers from winsock applications. They are chained along with base providers by registering in LSP System Configuration Database (aka catalog). On 64-bit Windows, there are 2 catalogs, one [...]


MZ = ZM ?

Have you ever wondered why every DOS executable (and since PE headers are derived from DOS headers every Windows executable such as a DLL or an EXE) has MZ at the beginning of the file ? You will find DOS header defined in winnt.h starting off like


Installing Windows Server 2008 x64 RC0

Here are some tips that might be helpful when you are setting up Windows Server 2008 RC0 on AMD64/EM64T machine or in VMWare. 1. You can install the OS without putting any license information. I tried to help it with license that MSDN gives. It