- Use explicit ansi string safe functions (where they are used ansi, but not explicitely);
- Add (old-school) function parameters annotations;
- Use PARTITION_ENTRY_UNUSED where needed (instead of hardcoding its value);
- Turn some functions static to this module;
- Turn the 2nd parameter of both GetNextUnformattedPartition() and GetNextUncheckedPartition() optional (for next commit);
- Improve some comments;
- Use NT types.
svn path=/branches/setup_improvements/; revision=74531
VOID
GetPartTypeStringFromPartitionType(
VOID
GetPartTypeStringFromPartitionType(
- UCHAR partitionType,
- PCHAR strPartType,
- DWORD cchPartType)
+ IN UCHAR partitionType,
+ OUT PCHAR strPartType,
+ IN ULONG cchPartType)
{
/* Determine partition type */
if (IsContainerPartition(partitionType))
{
{
/* Determine partition type */
if (IsContainerPartition(partitionType))
{
- StringCchCopy(strPartType, cchPartType, MUIGetString(STRING_EXTENDED_PARTITION));
+ RtlStringCchCopyA(strPartType, cchPartType, MUIGetString(STRING_EXTENDED_PARTITION));
}
else if (partitionType == PARTITION_ENTRY_UNUSED)
{
}
else if (partitionType == PARTITION_ENTRY_UNUSED)
{
- StringCchCopy(strPartType, cchPartType, MUIGetString(STRING_FORMATUNUSED));
+ RtlStringCchCopyA(strPartType, cchPartType, MUIGetString(STRING_FORMATUNUSED));
{
if (partitionType == PartitionTypes[i].Type)
{
{
if (partitionType == PartitionTypes[i].Type)
{
- StringCchCopy(strPartType, cchPartType, PartitionTypes[i].Description);
+ RtlStringCchCopyA(strPartType, cchPartType, PartitionTypes[i].Description);
return;
}
}
/* We are here because the partition type is unknown */
return;
}
}
/* We are here because the partition type is unknown */
- StringCchCopy(strPartType, cchPartType, MUIGetString(STRING_FORMATUNKNOWN));
+ RtlStringCchCopyA(strPartType, cchPartType, MUIGetString(STRING_FORMATUNKNOWN));
return Temp * Alignment;
}
return Temp * Alignment;
}
ULONGLONG
AlignUp(
IN ULONGLONG Value,
ULONGLONG
AlignUp(
IN ULONGLONG Value,
static
VOID
GetDriverName(
static
VOID
GetDriverName(
+ IN PDISKENTRY DiskEntry)
{
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
WCHAR KeyName[32];
{
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
WCHAR KeyName[32];
static
VOID
AssignDriveLetters(
static
VOID
AssignDriveLetters(
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
NTAPI
DiskIdentifierQueryRoutine(
PWSTR ValueName,
NTAPI
DiskIdentifierQueryRoutine(
PWSTR ValueName,
NTAPI
DiskConfigurationDataQueryRoutine(
PWSTR ValueName,
NTAPI
DiskConfigurationDataQueryRoutine(
PWSTR ValueName,
NTAPI
SystemConfigurationDataQueryRoutine(
PWSTR ValueName,
NTAPI
SystemConfigurationDataQueryRoutine(
PWSTR ValueName,
static VOID
EnumerateBiosDiskEntries(
static VOID
EnumerateBiosDiskEntries(
{
RTL_QUERY_REGISTRY_TABLE QueryTable[3];
WCHAR Name[120];
{
RTL_QUERY_REGISTRY_TABLE QueryTable[3];
WCHAR Name[120];
static
VOID
AddPartitionToDisk(
static
VOID
AddPartitionToDisk(
- ULONG DiskNumber,
- PDISKENTRY DiskEntry,
- ULONG PartitionIndex,
- BOOLEAN LogicalPartition)
+ IN ULONG DiskNumber,
+ IN PDISKENTRY DiskEntry,
+ IN ULONG PartitionIndex,
+ IN BOOLEAN LogicalPartition)
{
PPARTITION_INFORMATION PartitionInfo;
PPARTENTRY PartEntry;
PartitionInfo = &DiskEntry->LayoutBuffer->PartitionEntry[PartitionIndex];
{
PPARTITION_INFORMATION PartitionInfo;
PPARTENTRY PartEntry;
PartitionInfo = &DiskEntry->LayoutBuffer->PartitionEntry[PartitionIndex];
- if (PartitionInfo->PartitionType == 0 ||
+ if (PartitionInfo->PartitionType == PARTITION_ENTRY_UNUSED ||
((LogicalPartition != FALSE) && IsContainerPartition(PartitionInfo->PartitionType)))
return;
((LogicalPartition != FALSE) && IsContainerPartition(PartitionInfo->PartitionType)))
return;
static
VOID
ScanForUnpartitionedDiskSpace(
static
VOID
ScanForUnpartitionedDiskSpace(
+ IN PDISKENTRY DiskEntry)
{
ULONGLONG LastStartSector;
ULONGLONG LastSectorCount;
{
ULONGLONG LastStartSector;
ULONGLONG LastSectorCount;
{
DPRINT1("No primary partition!\n");
{
DPRINT1("No primary partition!\n");
- /* Create a partition table that represents the empty disk */
+ /* Create a partition entry that represents the empty disk */
NewPartEntry = RtlAllocateHeap(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(PARTENTRY));
NewPartEntry = RtlAllocateHeap(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(PARTENTRY));
{
DPRINT1("No logical partition!\n");
{
DPRINT1("No logical partition!\n");
- /* Create a partition table entry that represents the empty extended partition */
+ /* Create a partition entry that represents the empty extended partition */
NewPartEntry = RtlAllocateHeap(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(PARTENTRY));
NewPartEntry = RtlAllocateHeap(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(PARTENTRY));
static
VOID
UpdateDiskSignatures(
static
VOID
UpdateDiskSignatures(
{
PLIST_ENTRY Entry;
PDISKENTRY DiskEntry;
{
PLIST_ENTRY Entry;
PDISKENTRY DiskEntry;
- /* Print partition lines*/
+ /* Print partition lines */
Entry = List->DiskListHead.Flink;
while (Entry != &List->DiskListHead)
{
Entry = List->DiskListHead.Flink;
while (Entry != &List->DiskListHead)
{
static
VOID
AddDiskToList(
static
VOID
AddDiskToList(
- HANDLE FileHandle,
- ULONG DiskNumber,
- PPARTLIST List)
+ IN HANDLE FileHandle,
+ IN ULONG DiskNumber,
+ IN PPARTLIST List)
{
DISK_GEOMETRY DiskGeometry;
SCSI_ADDRESS ScsiAddress;
{
DISK_GEOMETRY DiskGeometry;
SCSI_ADDRESS ScsiAddress;
&DiskGeometry,
sizeof(DISK_GEOMETRY));
if (!NT_SUCCESS(Status))
&DiskGeometry,
sizeof(DISK_GEOMETRY));
if (!NT_SUCCESS(Status))
if (DiskGeometry.MediaType != FixedMedia &&
DiskGeometry.MediaType != RemovableMedia)
if (DiskGeometry.MediaType != FixedMedia &&
DiskGeometry.MediaType != RemovableMedia)
&ScsiAddress,
sizeof(SCSI_ADDRESS));
if (!NT_SUCCESS(Status))
&ScsiAddress,
sizeof(SCSI_ADDRESS));
if (!NT_SUCCESS(Status))
Mbr = (PARTITION_SECTOR*)RtlAllocateHeap(ProcessHeap,
0,
DiskGeometry.BytesPerSector);
if (Mbr == NULL)
Mbr = (PARTITION_SECTOR*)RtlAllocateHeap(ProcessHeap,
0,
DiskGeometry.BytesPerSector);
if (Mbr == NULL)
FileOffset.QuadPart = 0;
Status = NtReadFile(FileHandle,
FileOffset.QuadPart = 0;
Status = NtReadFile(FileHandle,
else
DiskEntry->NoMbr = FALSE;
else
DiskEntry->NoMbr = FALSE;
- /* Free Mbr sector buffer */
+ /* Free the MBR sector buffer */
RtlFreeHeap(ProcessHeap, 0, Mbr);
ListEntry = List->BiosDiskListHead.Flink;
RtlFreeHeap(ProcessHeap, 0, Mbr);
ListEntry = List->BiosDiskListHead.Flink;
BiosDiskEntry = CONTAINING_RECORD(ListEntry, BIOSDISKENTRY, ListEntry);
/* FIXME:
* Compare the size from bios and the reported size from driver.
BiosDiskEntry = CONTAINING_RECORD(ListEntry, BIOSDISKENTRY, ListEntry);
/* FIXME:
* Compare the size from bios and the reported size from driver.
- * If we have more than one disk with a zero or with the same signatur
+ * If we have more than one disk with a zero or with the same signature
* we must create new signatures and reboot. After the reboot,
* it is possible to identify the disks.
*/
* we must create new signatures and reboot. After the reboot,
* it is possible to identify the disks.
*/
if (DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart != 0 &&
DiskEntry->LayoutBuffer->PartitionEntry[0].PartitionLength.QuadPart != 0 &&
if (DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart != 0 &&
DiskEntry->LayoutBuffer->PartitionEntry[0].PartitionLength.QuadPart != 0 &&
- DiskEntry->LayoutBuffer->PartitionEntry[0].PartitionType != 0)
+ DiskEntry->LayoutBuffer->PartitionEntry[0].PartitionType != PARTITION_ENTRY_UNUSED)
{
if ((DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart / DiskEntry->BytesPerSector) % DiskEntry->SectorsPerTrack == 0)
{
{
if ((DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart / DiskEntry->BytesPerSector) % DiskEntry->SectorsPerTrack == 0)
{
if (IsListEmpty(&List->CurrentDisk->PrimaryPartListHead))
{
if (IsListEmpty(&List->CurrentDisk->PrimaryPartListHead))
{
- List->CurrentPartition = 0;
+ List->CurrentPartition = NULL;
VOID
DestroyPartitionList(
VOID
DestroyPartitionList(
{
PDISKENTRY DiskEntry;
PBIOSDISKENTRY BiosDiskEntry;
{
PDISKENTRY DiskEntry;
PBIOSDISKENTRY BiosDiskEntry;
static
VOID
PrintEmptyLine(
static
VOID
PrintEmptyLine(
USHORT Width;
USHORT Height;
USHORT Width;
USHORT Height;
static
VOID
PrintPartitionData(
static
VOID
PrintPartitionData(
- PPARTLIST List,
- PDISKENTRY DiskEntry,
- PPARTENTRY PartEntry)
+ IN PPARTLIST List,
+ IN PDISKENTRY DiskEntry,
+ IN PPARTENTRY PartEntry)
{
CHAR LineBuffer[128];
COORD coPos;
{
CHAR LineBuffer[128];
COORD coPos;
USHORT Width;
USHORT Height;
LARGE_INTEGER PartSize;
USHORT Width;
USHORT Height;
LARGE_INTEGER PartSize;
static
VOID
PrintDiskData(
static
VOID
PrintDiskData(
- PPARTLIST List,
- PDISKENTRY DiskEntry)
+ IN PPARTLIST List,
+ IN PDISKENTRY DiskEntry)
{
PPARTENTRY PrimaryPartEntry, LogicalPartEntry;
PLIST_ENTRY PrimaryEntry, LogicalEntry;
CHAR LineBuffer[128];
COORD coPos;
{
PPARTENTRY PrimaryPartEntry, LogicalPartEntry;
PLIST_ENTRY PrimaryEntry, LogicalEntry;
CHAR LineBuffer[128];
COORD coPos;
USHORT Width;
USHORT Height;
ULARGE_INTEGER DiskSize;
USHORT Width;
USHORT Height;
ULARGE_INTEGER DiskSize;
{
PLIST_ENTRY Entry, Entry2;
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry = NULL;
COORD coPos;
{
PLIST_ENTRY Entry, Entry2;
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry = NULL;
COORD coPos;
SHORT i;
SHORT CurrentDiskLine;
SHORT CurrentPartLine;
SHORT LastLine;
SHORT i;
SHORT CurrentDiskLine;
SHORT CurrentPartLine;
SHORT LastLine;
- BOOL CurrentPartLineFound = FALSE;
- BOOL CurrentDiskLineFound = FALSE;
+ BOOLEAN CurrentPartLineFound = FALSE;
+ BOOLEAN CurrentDiskLineFound = FALSE;
/* Calculate the line of the current disk and partition */
CurrentDiskLine = 0;
/* Calculate the line of the current disk and partition */
CurrentDiskLine = 0;
- PPARTLIST List,
- ULONG DiskNumber,
- ULONG PartitionNumber)
+ IN PPARTLIST List,
+ IN ULONG DiskNumber,
+ IN ULONG PartitionNumber)
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
BOOL
ScrollDownPartitionList(
BOOL
ScrollDownPartitionList(
{
PLIST_ENTRY DiskListEntry;
PLIST_ENTRY PartListEntry;
{
PLIST_ENTRY DiskListEntry;
PLIST_ENTRY PartListEntry;
BOOL
ScrollUpPartitionList(
BOOL
ScrollUpPartitionList(
{
PLIST_ENTRY DiskListEntry;
PLIST_ENTRY PartListEntry;
{
PLIST_ENTRY DiskListEntry;
PLIST_ENTRY PartListEntry;
static
BOOLEAN
IsEmptyLayoutEntry(
static
BOOLEAN
IsEmptyLayoutEntry(
- PPARTITION_INFORMATION PartitionInfo)
+ IN PPARTITION_INFORMATION PartitionInfo)
{
if (PartitionInfo->StartingOffset.QuadPart == 0 &&
PartitionInfo->PartitionLength.QuadPart == 0)
{
if (PartitionInfo->StartingOffset.QuadPart == 0 &&
PartitionInfo->PartitionLength.QuadPart == 0)
static
ULONG
GetLogicalPartitionCount(
static
ULONG
GetLogicalPartitionCount(
+ IN PDISKENTRY DiskEntry)
{
PLIST_ENTRY ListEntry;
PPARTENTRY PartEntry;
{
PLIST_ENTRY ListEntry;
PPARTENTRY PartEntry;
+ IN PDISKENTRY DiskEntry)
{
PDRIVE_LAYOUT_INFORMATION NewLayoutBuffer;
ULONG NewPartitionCount;
{
PDRIVE_LAYOUT_INFORMATION NewLayoutBuffer;
ULONG NewPartitionCount;
/* If the layout buffer grows, make sure the new (empty) entries are written to the disk */
if (NewPartitionCount > CurrentPartitionCount)
{
/* If the layout buffer grows, make sure the new (empty) entries are written to the disk */
if (NewPartitionCount > CurrentPartitionCount)
{
- for (i = CurrentPartitionCount; i < NewPartitionCount; i++)
- NewLayoutBuffer->PartitionEntry[i].RewritePartition = TRUE;
+ for (i = CurrentPartitionCount; i < NewPartitionCount; i++)
+ NewLayoutBuffer->PartitionEntry[i].RewritePartition = TRUE;
}
DiskEntry->LayoutBuffer = NewLayoutBuffer;
}
DiskEntry->LayoutBuffer = NewLayoutBuffer;
ListEntry = ListEntry->Flink;
}
ListEntry = ListEntry->Flink;
}
- /* Update the logical partition tables */
+ /* Update the logical partition table */
Index = 4;
ListEntry = DiskEntry->LogicalPartListHead.Flink;
while (ListEntry != &DiskEntry->LogicalPartListHead)
Index = 4;
ListEntry = DiskEntry->LogicalPartListHead.Flink;
while (ListEntry != &DiskEntry->LogicalPartListHead)
PartEntry->PartitionNumber = PartitionNumber;
PartEntry->PartitionIndex = Index;
PartEntry->PartitionNumber = PartitionNumber;
PartEntry->PartitionIndex = Index;
- /* Fill the link entry of the previous partition table */
+ /* Fill the link entry of the previous partition entry */
if (LinkInfo != NULL)
{
LinkInfo->StartingOffset.QuadPart = (PartEntry->StartSector.QuadPart - DiskEntry->SectorAlignment) * DiskEntry->BytesPerSector;
if (LinkInfo != NULL)
{
LinkInfo->StartingOffset.QuadPart = (PartEntry->StartSector.QuadPart - DiskEntry->SectorAlignment) * DiskEntry->BytesPerSector;
LinkInfo->RewritePartition = TRUE;
}
LinkInfo->RewritePartition = TRUE;
}
- /* Save a pointer to the link entry of the current partition table */
+ /* Save a pointer to the link entry of the current partition entry */
LinkInfo = &DiskEntry->LayoutBuffer->PartitionEntry[Index + 1];
PartitionNumber++;
LinkInfo = &DiskEntry->LayoutBuffer->PartitionEntry[Index + 1];
PartitionNumber++;
ListEntry = ListEntry->Flink;
}
ListEntry = ListEntry->Flink;
}
- /* Wipe unused primary partition table entries */
+ /* Wipe unused primary partition entries */
for (Index = GetPrimaryPartitionCount(DiskEntry); Index < 4; Index++)
{
DPRINT1("Primary partition entry %lu\n", Index);
for (Index = GetPrimaryPartitionCount(DiskEntry); Index < 4; Index++)
{
DPRINT1("Primary partition entry %lu\n", Index);
- /* Wipe unused logical partition table entries */
+ /* Wipe unused logical partition entries */
for (Index = 4; Index < DiskEntry->LayoutBuffer->PartitionCount; Index++)
{
if (Index % 4 >= 2)
for (Index = 4; Index < DiskEntry->LayoutBuffer->PartitionCount; Index++)
{
if (Index % 4 >= 2)
static
PPARTENTRY
GetPrevUnpartitionedEntry(
static
PPARTENTRY
GetPrevUnpartitionedEntry(
- PDISKENTRY DiskEntry,
- PPARTENTRY PartEntry)
+ IN PDISKENTRY DiskEntry,
+ IN PPARTENTRY PartEntry)
{
PPARTENTRY PrevPartEntry;
PLIST_ENTRY ListHead;
{
PPARTENTRY PrevPartEntry;
PLIST_ENTRY ListHead;
static
PPARTENTRY
GetNextUnpartitionedEntry(
static
PPARTENTRY
GetNextUnpartitionedEntry(
- PDISKENTRY DiskEntry,
- PPARTENTRY PartEntry)
+ IN PDISKENTRY DiskEntry,
+ IN PPARTENTRY PartEntry)
{
PPARTENTRY NextPartEntry;
PLIST_ENTRY ListHead;
{
PPARTENTRY NextPartEntry;
PLIST_ENTRY ListHead;
VOID
CreatePrimaryPartition(
VOID
CreatePrimaryPartition(
- PPARTLIST List,
- ULONGLONG SectorCount,
- BOOLEAN AutoCreate)
+ IN PPARTLIST List,
+ IN ULONGLONG SectorCount,
+ IN BOOLEAN AutoCreate)
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
static
VOID
AddLogicalDiskSpace(
static
VOID
AddLogicalDiskSpace(
+ IN PDISKENTRY DiskEntry)
{
PPARTENTRY NewPartEntry;
DPRINT1("AddLogicalDiskSpace()\n");
{
PPARTENTRY NewPartEntry;
DPRINT1("AddLogicalDiskSpace()\n");
- /* Create a partition table entry that represents the empty space in the container partition */
+ /* Create a partition entry that represents the empty space in the container partition */
NewPartEntry = RtlAllocateHeap(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(PARTENTRY));
NewPartEntry = RtlAllocateHeap(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(PARTENTRY));
VOID
CreateExtendedPartition(
VOID
CreateExtendedPartition(
- PPARTLIST List,
- ULONGLONG SectorCount)
+ IN PPARTLIST List,
+ IN ULONGLONG SectorCount)
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
if (List == NULL ||
List->CurrentDisk == NULL ||
List->CurrentPartition == NULL ||
if (List == NULL ||
List->CurrentDisk == NULL ||
List->CurrentPartition == NULL ||
- (List->CurrentPartition->IsPartitioned != FALSE))
+ List->CurrentPartition->IsPartitioned != FALSE)
VOID
CreateLogicalPartition(
VOID
CreateLogicalPartition(
- PPARTLIST List,
- ULONGLONG SectorCount,
- BOOLEAN AutoCreate)
+ IN PPARTLIST List,
+ IN ULONGLONG SectorCount,
+ IN BOOLEAN AutoCreate)
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
VOID
DeleteCurrentPartition(
VOID
DeleteCurrentPartition(
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
{
PDISKENTRY DiskEntry;
PPARTENTRY PartEntry;
- /* Clear the system disk and partition pointers if the system partition will be deleted */
+ /* Clear the system disk and partition pointers if the system partition is being deleted */
if (List->SystemPartition == List->CurrentPartition)
{
List->SystemDisk = NULL;
if (List->SystemPartition == List->CurrentPartition)
{
List->SystemDisk = NULL;
BOOLEAN
WritePartitionsToDisk(
BOOLEAN
WritePartitionsToDisk(
{
PLIST_ENTRY Entry;
PDISKENTRY DiskEntry;
{
PLIST_ENTRY Entry;
PDISKENTRY DiskEntry;
{
PLIST_ENTRY Entry1, Entry2;
PDISKENTRY DiskEntry;
{
PLIST_ENTRY Entry1, Entry2;
PDISKENTRY DiskEntry;
LARGE_INTEGER StartingOffset;
if (List == NULL)
LARGE_INTEGER StartingOffset;
if (List == NULL)
Entry1 = List->DiskListHead.Flink;
while (Entry1 != &List->DiskListHead)
Entry1 = List->DiskListHead.Flink;
while (Entry1 != &List->DiskListHead)
PartEntry = CONTAINING_RECORD(Entry2, PARTENTRY, ListEntry);
if (PartEntry->IsPartitioned)
{
PartEntry = CONTAINING_RECORD(Entry2, PARTENTRY, ListEntry);
if (PartEntry->IsPartitioned)
{
+ /* Assign a "\DosDevices\#:" mount point to this partition */
if (PartEntry->DriveLetter)
{
StartingOffset.QuadPart = PartEntry->StartSector.QuadPart * DiskEntry->BytesPerSector;
if (PartEntry->DriveLetter)
{
StartingOffset.QuadPart = PartEntry->StartSector.QuadPart * DiskEntry->BytesPerSector;
GetNextUnformattedPartition(
IN PPARTLIST List,
GetNextUnformattedPartition(
IN PPARTLIST List,
- OUT PDISKENTRY *pDiskEntry,
+ OUT PDISKENTRY *pDiskEntry OPTIONAL,
OUT PPARTENTRY *pPartEntry)
{
PLIST_ENTRY Entry1, Entry2;
OUT PPARTENTRY *pPartEntry)
{
PLIST_ENTRY Entry1, Entry2;
GetNextUncheckedPartition(
IN PPARTLIST List,
GetNextUncheckedPartition(
IN PPARTLIST List,
- OUT PDISKENTRY *pDiskEntry,
+ OUT PDISKENTRY *pDiskEntry OPTIONAL,
OUT PPARTENTRY *pPartEntry)
{
PLIST_ENTRY Entry1, Entry2;
OUT PPARTENTRY *pPartEntry)
{
PLIST_ENTRY Entry1, Entry2;
ULONG Signature;
} BIOS_DISK, *PBIOS_DISK;
ULONG Signature;
} BIOS_DISK, *PBIOS_DISK;
+VOID
+GetPartTypeStringFromPartitionType(
+ IN UCHAR partitionType,
+ OUT PCHAR strPartType,
+ IN ULONG cchPartType);
+
PPARTLIST
CreatePartitionList(
SHORT Left,
PPARTLIST
CreatePartitionList(
SHORT Left,
VOID
DestroyPartitionList(
VOID
DestroyPartitionList(
- PPARTLIST List,
- ULONG DiskNumber,
- ULONG PartitionNumber);
-
-BOOL
-SetMountedDeviceValues(
- PPARTLIST List);
+ IN PPARTLIST List,
+ IN ULONG DiskNumber,
+ IN ULONG PartitionNumber);
BOOL
ScrollDownPartitionList(
BOOL
ScrollDownPartitionList(
BOOL
ScrollUpPartitionList(
BOOL
ScrollUpPartitionList(
VOID
CreatePrimaryPartition(
VOID
CreatePrimaryPartition(
- PPARTLIST List,
- ULONGLONG SectorCount,
- BOOLEAN AutoCreate);
+ IN PPARTLIST List,
+ IN ULONGLONG SectorCount,
+ IN BOOLEAN AutoCreate);
VOID
CreateExtendedPartition(
VOID
CreateExtendedPartition(
- PPARTLIST List,
- ULONGLONG SectorCount);
+ IN PPARTLIST List,
+ IN ULONGLONG SectorCount);
VOID
CreateLogicalPartition(
VOID
CreateLogicalPartition(
- PPARTLIST List,
- ULONGLONG SectorCount,
- BOOLEAN AutoCreate);
+ IN PPARTLIST List,
+ IN ULONGLONG SectorCount,
+ IN BOOLEAN AutoCreate);
VOID
DeleteCurrentPartition(
VOID
DeleteCurrentPartition(
VOID
CheckActiveSystemPartition(
VOID
CheckActiveSystemPartition(
BOOLEAN
WritePartitionsToDisk(
BOOLEAN
WritePartitionsToDisk(
+ IN PPARTLIST List);
+
+BOOLEAN
+SetMountedDeviceValues(
+ IN PPARTLIST List);
ULONG
PrimaryPartitionCreationChecks(
ULONG
PrimaryPartitionCreationChecks(
LogicalPartitionCreationChecks(
IN PPARTLIST List);
LogicalPartitionCreationChecks(
IN PPARTLIST List);
GetNextUnformattedPartition(
IN PPARTLIST List,
GetNextUnformattedPartition(
IN PPARTLIST List,
- OUT PDISKENTRY *pDiskEntry,
+ OUT PDISKENTRY *pDiskEntry OPTIONAL,
OUT PPARTENTRY *pPartEntry);
OUT PPARTENTRY *pPartEntry);
GetNextUncheckedPartition(
IN PPARTLIST List,
GetNextUncheckedPartition(
IN PPARTLIST List,
- OUT PDISKENTRY *pDiskEntry,
+ OUT PDISKENTRY *pDiskEntry OPTIONAL,
OUT PPARTENTRY *pPartEntry);
OUT PPARTENTRY *pPartEntry);
-VOID
-GetPartTypeStringFromPartitionType(
- UCHAR partitionType,
- PCHAR strPartType,
- DWORD cchPartType);
-