Start Menu Order Scanner

Registered by Nick

Goes through the order of each folder in the start menu and checks for invalid files and folders.

Blueprint information

Status:
Not started
Approver:
Nick
Priority:
Undefined
Drafter:
Nick
Direction:
Needs approval
Assignee:
None
Definition:
Drafting
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

The registry keys in sub-keys starting at HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/MenuOrder/... describe in which order Explorer will display items in the Favourites menu and StartMenu.
The subkey root for the start menu "Start Menu" (or "Start Menu2" for XP's new start menu) contains key roots for each item in the start menu that has be visited by the user - Windows populates these keys as the menus are visited. If a menu's content items have ever been re-ordered by the user a key-value called "Order" is placed in the menu's entry. This key-value is a binary key which describes the order of each item in the menu. The format is as follows.

0. DISCLAIMER - this is purely the outcome of my own personal research. It is incomplete. I do not accept
    any responsibility for anything happening as a result of anyone using this information. Good luck :-)

1. 32-bit long words are in order low-word:high-word each word in order low-byte:high-byte.
    e.g. 00 00 01 00 = 0x10000 (65536), 01 00 00 00 = 1. Sixteen-bit values are likewise low-byte:high-byte.

2. The items in the list below MUST be in alphabetical order, the display order is determined otherwise.

3. The data is split into a header area followed by one or more entries which describe a menu item and it ordering.

The Header consists of:

--------------------+---------------------------------------------------------------------------------------------------------+
byte offset description (all numbers in hex)
--------------------+---------------------------------------------------------------------------------------------------------+
0-7 Fixed header bytes: 08 00 00 00 02, 00, 00, 00
8-11 Length of following bytes (=size of whole binary key value - 8)
12-15 Always apears to be: 01 00 00 00
16-19 Number of item entries in this menu
--------------------+---------------------------------------------------------------------------------------------------------+

Each item entry, placed serially in the binary stream in alphabetical order, consists of:

--------------------+---------------------------------------------------------------------------------------------------------+
 byte offset description (all numbers in hex)
--------------------+---------------------------------------------------------------------------------------------------------+
0-3 Number of bytes in this entry
4-7 Position in start menu to display entry :-)
                          Sometimes it is filled with FB, FF, FF, FF. I don't know why, maybe its a value
                          that says to sort in default (alphabetic) order.
8-11 Number of bytes to FIRST (or only) null at the end of the short file name stored further on in entry
12-15 Always seems to be:41, 75, 67, 4d ("AugM")
16-19 Always seems to be: 01, 00, 00, 00
20-23 Always seems to be: 01, 00, 00, 00
24-27 Always seems to be: 00, 00, 00, 00
28-29 Two byte value indicating umber of bytes to FIRST (or only) null at the end
                           of the short file name stored further on in entry
                           file name stored further on in entry
30-31 Two byte value which is:
                             31 if the menu item is a folder (i.e. a new sub-menu)
                             32 if the menu item is a shortcut or file
32-35 NO IDEA !!!!
36-39 NO IDEA !!!!
40 Byte value:
                             10 if the menu item is a folder (i.e. a new sub-menu)
                             20 if the menu item is a shortcut or file
41 Byte value: 08
42-n1 Null terminated string containing the long file name (not including path) of the file, shortcut
                           or folder which is an item in this menu
n1+1 - n2 Null terminated string containing the short file name (not including path) of the file, shortcut
                           or folder which is an item in this menu.
                           NOTE 1: if the short file name is the same as the long file name then just a single null sits here
                          NOTE 2: if the number of characters in the long + short file names is ODD then an EXTAR NULL
                                        is tagged onto the end (this is not counted in values at offsetts 8 and 28.
n2+1 - n2+4 Always appears to be zero
n2+5 - n2+8 DON'T KNOW what these values are either
--------------------+---------------------------------------------------------------------------------------------------------+

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.