2.3.1 VolumeID
The VolumeID structure specifies information about the volume that a link target was on when the link was created. This information is useful for resolving the link if the file is not found in its original location.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VolumeIDSize |
|||||||||||||||||||||||||||||||
DriveType |
|||||||||||||||||||||||||||||||
DriveSerialNumber |
|||||||||||||||||||||||||||||||
VolumeLabelOffset |
|||||||||||||||||||||||||||||||
VolumeLabelOffsetUnicode (optional) |
|||||||||||||||||||||||||||||||
Data (variable) |
|||||||||||||||||||||||||||||||
... |
VolumeIDSize (4 bytes): A 32-bit, unsigned integer that specifies the size, in bytes, of this structure. This value MUST be greater than 0x00000010. All offsets specified in this structure MUST be less than this value, and all strings contained in this structure MUST fit within the extent defined by this size.
DriveType (4 bytes): A 32-bit, unsigned integer that specifies the type of drive the link target is stored on. This value MUST be one of the following:
-
Value
Meaning
DRIVE_UNKNOWN
0x00000000
The drive type cannot be determined.
DRIVE_NO_ROOT_DIR
0x00000001
The root path is invalid; for example, there is no volume mounted at the path.
DRIVE_REMOVABLE
0x00000002
The drive has removable media, such as a floppy drive, thumb drive, or flash card reader.
DRIVE_FIXED
0x00000003
The drive has fixed media, such as a hard drive or flash drive.
DRIVE_REMOTE
0x00000004
The drive is a remote (network) drive.
DRIVE_CDROM
0x00000005
The drive is a CD-ROM drive.
DRIVE_RAMDISK
0x00000006
The drive is a RAM disk.
DriveSerialNumber (4 bytes): A 32-bit, unsigned integer that specifies the drive serial number of the volume the link target is stored on.
VolumeLabelOffset (4 bytes): A 32-bit, unsigned integer that specifies the location of a string that contains the volume label of the drive that the link target is stored on. This value is an offset, in bytes, from the start of the VolumeID structure to a NULL-terminated string of characters, defined by the system default code page. The volume label string is located in the Data field of this structure.
-
If the value of this field is 0x00000014, it MUST be ignored, and the value of the VolumeLabelOffsetUnicode field MUST be used to locate the volume label string.
VolumeLabelOffsetUnicode (4 bytes): An optional, 32-bit, unsigned integer that specifies the location of a string that contains the volume label of the drive that the link target is stored on. This value is an offset, in bytes, from the start of the VolumeID structure to a NULL-terminated string of Unicode characters. The volume label string is located in the Data field of this structure.
-
If the value of the VolumeLabelOffset field is not 0x00000014, this field MUST NOT be present; instead, the value of the VolumeLabelOffset field MUST be used to locate the volume label string.
Data (variable): A buffer of data that contains the volume label of the drive as a string defined by the system default code page or Unicode characters, as specified by preceding fields.