Partition Manager (Windows Embedded CE 6.0)
1/6/2010
Partition Manager manages, loads, and unloads logical partitions on a storage device. Partition Manager calls one of several different partition drivers and is contained within Storage Manager. Storage Manager is selected with the SYSGEN_STOREMGR variable.
A storage device is composed of number of sectors that are contiguous set of bytes within the device. All sectors on a storage device are the same size. A partition is a logical division of a storage device and covers a span of whole sectors within the storage device. Never overlap the partitions in a storage device, or the OS may stop responding. Space that is not included in any of the logical partitions is considered part of the unpartitioned space in the storage device.
You can associate different file systems with each partition on a storage device. The file system type is associated with the partition when you create or format it. When you mount the partition, Partition Manager requests Storage Manager to activate the respective file system.
The PartitionTable key contains entries in which the volume name is the partition type. This entry is in %02X
format. The value is the name of the file system and is used to look up the module to load. Declare the NTFS file system partition type so that the file allocation table (FAT) is not loaded. The number 07 represents the NTFS file system partition. The following table shows the partition types.
Partition type | Identifier |
---|---|
Microsoft® MS-DOS® 12-bit FAT |
0x01 |
XENIX1 |
0x02 |
XENIX2 |
0x03 |
MS-DOS 16-bit FAT |
0x04 |
MS-DOS Extended |
0x05 |
MS-DOS 24-bit FAT |
0x06 |
NTFS |
0x07 |
MS-DOS 32-bit FAT |
0x0B |
MS-DOS 32-bit FAT LBA |
0x0C |
MS-DOS 24-bit FAT LBA |
0x0E |
MS-DOS Extended LBA |
0x0F |
BinFS file system |
0x21 |
Partition Table Example
The partition table associates a byte-value partition type with a file system string. In the following example, taken from the default partition table in common.reg, the byte value 0x07 is mapped to the string "NTFS", and the byte value 0x04 is mapped to the file system string “FATFS”.
[HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable]
"01"="FATFS"
"04"="FATFS"
"06"="FATFS"
"07"="NTFS"
"0B"="FATFS"
"0C"="FATFS"
"0E"="FATFS"
"0F"="FATFS"
"20"="BOOT"
"21"="BINFS"
"22"="RAWFS"
"23"="RAWFS"
"25"="IMGFS"
"26"="BINARY"
The settings for a particular partition type are located under a registry key that corresponds to the file system string mapped to the partition type. For example, settings for the 0x04 partition type are located under the registry sub-key with the name “FATFS”, as shown in the following example:**
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"Dll"="EXFAT.DLL"
"Util"="FATUTIL.DLL"
"Paging"=dword:1
Null Partition Driver
If the PartitionDriver key is blank, the null partition driver loads. If the PartitionDriver key is not found, the default file system is loaded. Partition Manager tries to load a non-existent file system, in this case, NTFS, so no file system is associated with that profile. The following registry key example shows the NTFS file system declared as the non-existent partition type.
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile\PartitionTable]
"07"="NTFS"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\CDProfile]
"Name"="IDE CDROM/DVD Drive"
"Folder"="CDROM Drive"
"DefaultFileSystem"="UDFS"
"PartitionDriver"=""
Internal Volumes
To explicitly state that a storage partition is an internal volume, you can use the InternalVolume registry key. For example, to exclude files on a specific storage partition from getting encrypted when file encryption is enabled, you must define it as an internal volume. The following registry-key example shows how to set a secondary internal store named MyPartition as an internal volume:
[HKEY_LOCAL_MACHINE\System\StorageManager\InternalVolumes]
“InternalVolumeList”=”MyPartition”