The Old New Thing

Microspeak: Cadence

Originally, the term cadence meant the rate at which a regular event recurs, possibly with variations, but with an overall cycle that repeats. For example, the cadence for team meetings might be "Every Monday, with a longer meeting on the last meeting of each month." Project X is on a six-month release cadence, whereas Project Y ...

What's the difference between FreeResource and, say, DestroyAcceleratorTable

MaxMax asks a number of resource-related questions, starting with "How do you Unlock a Lock­Resource?" and culminating in "What are the differences between Free­Resource and Destroy­Accelerator­Table, Destroy­Object, etc.? It would be much easier to use a single function instead of a collection of five." It helps if you ...
Comments are closed.0 0
Code

The window manager needs a message pump in order to call you back unexpectedly

There are a bunch of different ways of asking the window manager to call you when something interesting happens. Some of them are are in response to things that you explicitly asked for right now. The enumeration functions are classic examples of this. If you call EnumWindows and pass a callback function, then that callback is called directly ...
Comments are closed.0 0
Code

If you're waiting for I/O to complete, it helps if you actually have an I/O to begin with

We saw earlier the importance of waiting for I/O to complete before freeing the data structures associated with that I/O. On the other hand, before you start waiting, you have to make sure that you have something to wait for. A customer reported a hang in Get­Overlapped­Result waiting for an I/O to cancel, and the I/O team was ...
Comments are closed.0 0
Code

Although the x64 calling convention reserves spill space for parameters, you don't have to use them as such

Although the x64 calling convention reserves space on the stack as spill locations for the first four parameters (passed in registers), there is no requirement that the spill locations actually be used for spilling. They're just 32 bytes of memory available for scratch use by the function being called. We have a test program that works ...
Comments are closed.0 0
Code

No, not that M, the other M, the one called Max

Code names are rampant at Microsoft. One of the purposes of a code name is to impress upon the people who work with the project that the name is only temporary, and that the final name will come from the marketing folks (who sometimes pull through with a catchy name like Zune, and who sometimes drop the ball with a dud like Bob and who ...