Saturday, March 7, 2009

Windows Shortcut File Location Info

File Location Info

This item is always present, but if bit 1 is not set in the flags value, then the length of this structure will be zero. The following table shows the structure of the header ofthis item.

File Location Info

Offset Size Contents
0h 1 dword This is the total length of this structure and all following data
4h 1 dword This is a pointer to first offset after this structure.
1Ch8h 1 dword Flags
Ch 1 dword Offset of local volume info
10h 1 dword Offset of base pathname on local system
14h 1 dword Offset of network volume info
18h 1 dword Offset of remaining pathname

Notes: The first length value includes all the assorted pathnames and other datastructures. All offsets are relative to the start of this structure.

The first long integer indicates the size of the file location info.

The next long integer is the offset at which the basic file info structure ends. Shouldbe 1Ch under normal conditions.

The next long integer is the flags that indicate which types of volumes the file is available on.

Volume flags

Bit Meaning
0 Available on a local volume
1 Available on a network share

The next long integer is the offset to the local volume table. ( Random garbage when bit 0 is clear in volume flags)

The next long integer is the offset to the base path on the local volume.
( Random garbage when bit 0 is clear in volume flags)

The next long integer is the offset to the network volume table. ( Random garbage when bit 1 is clear in volume flags)

The next long integer is the offset to the final part of the pathname.

To find the filename of the file on the local volume, combine the base path string andthe final path string.

To find the filename of the file on the network, combine the share name in thenetwork volume table with the final path string.

Description string

If bit 2 is set in the flags value in the header, then this string is present.

The first unsigned short int value indicates the length of the string. Following thelength value is a string of ASCII characters. It is a description of the item.

Relative path string

If bit 3 is set in the flags value in the header, then this string is present.The first unsigned short int value indicates the length of the string.

Following thelength value is a string of ASCII characters. It is a relative path to the target.

Working directory

If bit 4 is set in the flags value in the header, then this string is present.

The first unsigned short int value indicates the length of the string. Following thelength value is a string of ASCII characters. It is the working directory as specified inthe shortcut properties.

Command line string

If bit 5 is set in the flags value in the header, then this string is present.

The first unsigned short int value indicates the length of the string. Following thelength value is a string of ASCII characters. The command line string includes everything except the program name.

Icon filename string

If bit 6 is set in the flags value in the header, then this string is present.

The first unsigned short int value indicates the length of the string. Following thelength value is a string of ASCII characters. This the name of the file containing theicon.

No comments:

Post a Comment