VOID FASTCALL IoAssignDriveLetters( IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock, IN PSTRING NtDeviceName, OUT PUCHAR NtSystemPath, OUT PSTRING NtSystemPathString ); Routine Description: This routine assigns DOS drive letters to eligible disk partitions and CDROM drives. It also maps the partition containing the NT boot path to \SystemRoot. In NT, objects are built for all partition types except 0 (unused) and 5 (extended). But drive letters are assigned only to recognized partition types (1, 4, 6, 7, e). Drive letter assignment is done in several stages: 1) For each CdRom: Determine if sticky letters are assigned and reserve the letter. 2) For each disk: Determine how many primary partitions and which is bootable. Determine which partitions already have 'sticky letters' and create their symbolic links. Create a bit map for each disk that indicates which partitions require default drive letter assignments. 3) For each disk: Assign default drive letters for the bootable primary partition or the first nonbootable primary partition. 4) For each disk: Assign default drive letters for the partitions in extended volumes. 5) For each disk: Assign default drive letters for the remaining (ENHANCED) primary partitions. 6) Assign A: and B: to the first two floppies in the system if they exist. Then assign remaining floppies next available drive letters. 7) Assign drive letters to CdRoms (either sticky or default). Arguments: LoaderBlock - pointer to a loader parameter block. NtDeviceName - pointer to the boot device name string used to resolve NtSystemPath. Return Value: None.