Quantcast
Channel: The Old New Thing
Browsing all 3085 articles
Browse latest View live

What order are pages in a memory-mapped file flushed out to disk?

Say you create a memory-mapped file mapping and write data to it. In which order will the pages be flushed out to disk? Is it in the order the pages were written? Or are pages closer to the beginning...

View Article


Even if your assembly language code doesn’t call any Windows APIs, you still...

Writing in assembly language doesn't absolve you from adhering to the software conventions. Certainly you have more flexibility in assembly language, but that doesn't give you freedom to do anything...

View Article


Precision questioning: The cynical description

Precision questioning is a technique used by some senior executives at Microsoft. Although precision questioning positions itself as a toolkit for critical thinking and problem solving, its use in...

View Article

Asking for clear written documentation that Require trusted path for...

A customer had turned on the Require trusted path for credential entry policy (under Computer Configuration, Administrative Templates, Windows Components, Credential User Interface). They demanded...

View Article

Image may be NSFW.
Clik here to view.

Why is there a limit of 15 shell icon overlays?

There is a limit of fifteen shell icon overlays. Why fifteen? The value 15 came from the corresponding limit for image lists. The Image­List_Set­Overlay­Image function supports up to 15 image list...

View Article


Resolving security issues sometimes involves its own degree of managing...

Lots of reports come in to the Microsoft Security Response Center. Resolving them is not just a technical issue, but also a social one. For example, somebody might report a potential vulnerability, but...

View Article

How can we use IsBadWritePtr to fix a buffer overflow, if IsBadWritePtr is...

A customer asked for assistance in investigating an access violation caused by a buffer overflow. They figured that they could probe whether the buffer is large enough to receive the data by using...

View Article

How do I design a class so that methods must be called in a certain order?

Suppose you have a class with some methods, and the methods must be called in a certain order. For example, suppose your class is for importing photos from a camera. First, you have to specify which...

View Article


Why does my app’s uninstaller disappear from the Start menu?

A customer reported that their installer creates a shortcut on the Start menu called Uninstall Contoso Deluxe, but a few seconds after their installer completes, the Uninstall Contoso Deluxe icon...

View Article


winrt::fire_and_forget was too forgetful

C++/WinRT provides a handy helper class called winrt::fire_and_forget. It lets you specify that nobody is going to observe the result of the coroutine. This is handy because it lets you tell the...

View Article

Expressing fire-and-forget coroutines more explicitly, -or- How to turn any...

Last time, we looked at how to mark a coroutine as fire-and-forget, meaning that the caller does not get any information about when the coroutine completes. This is fine as far as it goes, but it may...

View Article

Turning anything into a fire-and-forget coroutine

Last time, we wrote a helper function for converting an awaitable into a winrt::fire_and_forget, as well as another helper function that takes a lambda that returns an awaitable, and which invokes the...

View Article

Vintage Computer Festival Pacific Northwest 2019

This upcoming weekend, the Vintage Computer Festival Pacific Northwest 2019 will take place at the Living Computers Museum+Labs in Seattle. The festival is included with admission to the museum. ($18...

View Article


What does the N in nmake stand for?

The Visual Studio toolchain comes with a tool called nmake. It processes files in roughly the same way as the traditional Unix make tool. Why is it called nmake instead of just make? Rewind back to the...

View Article

When do Core­Dispatcher.Run­Async and Thread­Pool.Run­Async actions complete?

The Core­Dispatcher::Run­Async and Thread­Pool::Run­Async methods take a delegate and schedule it to be invoked on the dispatcher thread or on a thread pool thread. These methods return an...

View Article


How to compare two packed bitfields without having to unpack each field

Suppose you are packing multiple bitfields into a single integer. Let's say you have a 16-bit integer that you have packed three bitfields into: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 r g b Suppose you...

View Article

My initial frustration trying to configure our internal VoIP phones that were...

I remember when Microsoft made their initial internal roll-out of its VoIP phones. The VoIP phones were integrated with a desktop app which let you configure the phone, managed your telepresence, as...

View Article


Alternate definitions for English words, as inferred from bug reports

Here are some terms that appear in bug reports. "Empty" means "There are a bunch of things here, but not the ones I wanted." "Blank" means "There are things, maybe." "The picture is wrong" can mean...

View Article

Predator-prey reversal: Rock lobsters vs whelks on Malgas Island and Marcus...

Malgas Island is dominated by rock lobsters, who happily feast upon whelks. Just 4km away, Marcus Island is dominated by whelks, not a rock lobster to be found. Researcher Amos Barkai couldn't figure...

View Article

How do I destruct an object that keeps a reference to itself, because that...

Consider the case of an ordered work queue. Components can queue work to the worker thread, with the expectation that the work will run sequentially. class OrderedWorkQueue { public:...

View Article
Browsing all 3085 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>