Posts by this author

Aug 16, 2004
0
0

Myth: The /3GB switch lets me map one giant 3GB block of memory

Just because the virtual address space is 3GB doesn't mean that you can map one giant 3GB block of memory. The standard holes in the virtual address space are still there: 64K at the bottom, and 64K near the 2GB boundary. Moreover, the system DLLs continue to load at their preferred virtual addresses which lie just below the 2GB boundary. The pro...

Other
Aug 13, 2004
0
0

Why does Exchange recommend /3GB if you have more than 1GB of physical memory?

If you look through the Knowledge Base, you'll see an article that say that Exchange 2000 requires the /3GB switch with more than 1 gigabyte of physical RAM. Yet I've been writing all this time that /3GB has nothing to do with physical RAM. What's the deal? The title of the article could be a bit clearer. It really should be something more like ...

Other
Aug 12, 2004
0
0

Myth: The /3GB switch expands the user-mode address space of all programs

Only programs marked as /LARGEADDRESSAWARE are affected. For compatibility reasons, only programs that explicitly indicate that they are prepared to handle a virtual address space larger than 2GB will get the larger virtual address space. Unmarked programs get the normal 2GB virtual address space, and the address space between 2GB and 3GB goes u...

Other
Aug 11, 2004
0
0

Myth: You need /3GB if you have more than 2GB of physical memory

Physical memory is not virtual address space. In my opinion, this is another non sequitur. I'm not sure what logical process led to this myth. It can't be a misapprehension of a 1-1 mapping between physical memory and virtual memory, because that mapping is blatantly not one-to-one. You typically have far more virtual memory than physical memory...

Other
Aug 10, 2004
0
0

Myth: Without /3GB a single program can’t allocate more than 2GB of virtual memory

Virtual memory is not virtual address space (part 2). This myth is being perpetuated even as I write this series of articles. The user-mode virtual address space is normally 2GB, but that doesn't limit you to 2GB of virtual memory. You can allocate memory without it being mapped into your virtual address space. (Those who grew up with Expanded Me...

Other
Aug 6, 2004
0
0

Kernel address space consequences of the /3GB switch

One of the adverse consequences of the /3GB switch is that it forces the kernel to operate inside a much smaller space. One of the biggest casualties of the limited address space is the video driver. To manage the memory on the video card, the driver needs to be able to address it, and the apertures required are typically quite large. When...

Other
Aug 5, 2004
0
0

The oft-misunderstood /3GB switch

It's simple to explain what it does, but people often misunderstand. The /3GB switch changes the way the 4GB virtual address space is split up. Instead of splitting it as 2GB of user mode virtual address space and 2GB of kernel mode virtual address space, the split is 3GB of user mode virtual address space and 1GB of kernel mode virtual addr...

Other
Aug 4, 2004
0
0

Never leave focus on a disabled control

One of the big no-no's in dialog box management is disabling the control that has focus without first moving focus somewhere else. When you do this, the keyboard becomes dead to the dialog box, since disabled windows do not receive input. For users who don't have a mouse (say, because they have physical limitations that confine them to the keyboar...

Code
Aug 4, 2004
0
2

Why .shared sections are a security hole

Many people will recommend using shared data sections as a way to share data between multiple instances of an application. This sounds like a great idea, but in fact it's a security hole. Proper shared memory objects created by the CreateFileMapping function can be secured. They have security descriptors that let you specify which users are all...

Code