Windows Confidential: Jump Once, Jump Twice
The new Jump Lists feature in Windows 7 lets you jump to recent or favorite items, but jump carefully.
Why would a jump list only show one entry from a network-attached storage device? False uniqueness is the answer. Jump Lists are a new feature in Windows 7 that give you quick access to recently opened items. They also let you “pin” favorite items to the list so they’re easily available.
One customer observed that even though they had opened several files from their network-attached storage (NAS) device, the Windows 7 Jump List only showed the most recent file. If they pinned one item to the jump list, then tried to pin a second item, the first one was automatically unpinned. The customer wanted to know why does Windows support only one Jump List item for NAS devices?
This was not the intended behavior for Jump Lists. You’re supposed to be able to add multiple items from NAS devices the same way you can add multiple items from local drives.
Further investigation revealed this anomalous behavior happened only on certain NAS devices. Therefore, the problem wasn’t with NAS devices in general, but with specific models. This investigation highlighted another frequent phenomenon: the assumption that a problem is evidence of some sort of widespread flaw instead of being specific to one situation.
Jump Lists use object identifiers to identify items, if the drive supports them. Using object identifiers avoids the problem that happens when you rename or move an item, and then open it again under its new name. If the volume doesn’t support object identifiers, the document will show up twice in the Jump List, once under its old, invalid name and once under its new name.
Using object identifiers, the Jump List can detect that the two documents are actually the same one. It will then remove the redundant entry. These are the same object identifiers I encountered two years ago when I looked at shortcut link tracking.
Unique, Just Like Everyone Else
The Jump List team developed a theory for this type of behavior: Certain models of NAS devices might report they support object identifiers. When you ask, “What’s the object identifier for this file?” They’ll say, “Oh, its object identifier is five.”
Then you ask, “What about this other file?”
“Oh, that’s five, too.”
“What about this other file?”
No matter what file you give it, it always reports that the object identifier is five.
OK, it’s not really five. It’s a 48byte block of data. The point is that the object identifiers report the same 48-byte value for all files on the device. This causes the Jump List to think that all the files on the device are really the same file, and it prunes away the “duplicates.”
The device is accidentally saying, “All these files are really the same file that just gets renamed a lot.” This is yet another example of things falling apart when Explorer tries to use an existing feature that not everyone has correctly implemented.
Unfortunately, the Jump List team was unable to test the theory. They didn’t have access to any of the devices that exhibited the problem, and the customer decided not to pursue a deeper investigation to confirm the theory. Just keep that in mind if you encounter the same type of behavior.
Raymond Chen’s Web site, The Old New Thing, and identically titled book (Addison-Wesley, 2007) deal with Windows history, Win32 programming and screaming at 1170Hz.