/*++ Copyright (c) 2000 Microsoft Corporation Module Name: spswitch.h Abstract: Macros & Functions to switch between old and new partitioning engine in textmode. NEW_PARTITION_ENGINE forces new partition engine code to be used for both MBR and GPT disks. GPT_PARTITION_ENGINE forces new partition engine code to be used for GPT disks and old partition engine code for MBR disks. OLD_PARTITION_ENGINE forces the old partition engine to used for MBR disks. This option cannot handle GPT disks. Note : If none of the NEW_PARTITION_ENGINE, OLD_PARTITION_ENGINE or GPT_PARTITION_ENGINE macro is defined, then by default NEW_PARTITION_ENGINE is used. Author: Vijay Jayaseelan (vijayj) 18 March 2000 Revision History: --*/ #include "spprecmp.h" #pragma hdrstop #ifdef NEW_PARTITION_ENGINE // // Switching stubs for NEW_PARTITION_ENGINE // NTSTATUS SpPtPrepareDisks( IN PVOID SifHandle, OUT PDISK_REGION *InstallRegion, OUT PDISK_REGION *SystemPartitionRegion, IN PWSTR SetupSourceDevicePath, IN PWSTR DirectoryOnSetupSource, IN BOOLEAN RemoteBootRepartition ) { return SpPtnPrepareDisks(SifHandle, InstallRegion, SystemPartitionRegion, SetupSourceDevicePath, DirectoryOnSetupSource, RemoteBootRepartition); } NTSTATUS SpPtInitialize( VOID ) { return SpPtnInitializeDiskDrives(); } PDISK_REGION SpPtValidSystemPartition( VOID ) { return SpPtnValidSystemPartition(); } PDISK_REGION SpPtValidSystemPartitionArc( IN PVOID SifHandle, IN PWSTR SetupSourceDevicePath, IN PWSTR DirectoryOnSetupSource ) { return SpPtnValidSystemPartitionArc(SifHandle, SetupSourceDevicePath, DirectoryOnSetupSource, TRUE); } BOOLEAN SpPtDoCreate( IN PDISK_REGION pRegion, OUT PDISK_REGION *pActualRegion, OPTIONAL IN BOOLEAN ForNT, IN ULONGLONG DesiredMB OPTIONAL, IN PPARTITION_INFORMATION_EX PartInfo OPTIONAL, IN BOOLEAN ConfirmIt ) { return SpPtnDoCreate(pRegion, pActualRegion, ForNT, DesiredMB, PartInfo, ConfirmIt); } VOID SpPtDoDelete( IN PDISK_REGION pRegion, IN PWSTR RegionDescription, IN BOOLEAN ConfirmIt ) { SpPtnDoDelete(pRegion, RegionDescription, ConfirmIt); } ULONG SpPtGetOrdinal( IN PDISK_REGION Region, IN PartitionOrdinalType OrdinalType ) { return SpPtnGetOrdinal(Region, OrdinalType); } VOID SpPtGetSectorLayoutInformation( IN PDISK_REGION Region, OUT PULONGLONG HiddenSectors, OUT PULONGLONG VolumeSectorCount ) { SpPtnGetSectorLayoutInformation(Region, HiddenSectors, VolumeSectorCount); } BOOLEAN SpPtCreate( IN ULONG DiskNumber, IN ULONGLONG StartSector, IN ULONGLONG SizeMB, IN BOOLEAN InExtended, IN PPARTITION_INFORMATION_EX PartInfo, OUT PDISK_REGION *ActualDiskRegion OPTIONAL ) { return SpPtnCreate(DiskNumber, StartSector, 0, // SizeInSectors: Used only in ASR SizeMB, InExtended, TRUE, // AlignToCylinder PartInfo, ActualDiskRegion); } BOOLEAN SpPtDelete( IN ULONG DiskNumber, IN ULONGLONG StartSector ) { return SpPtnDelete(DiskNumber, StartSector); } BOOL SpPtIsSystemPartitionRecognizable( VOID ) { return SpPtnIsSystemPartitionRecognizable(); } VOID SpPtMakeRegionActive( IN PDISK_REGION Region ) { SpPtnMakeRegionActive(Region); } NTSTATUS SpPtCommitChanges( IN ULONG DiskNumber, OUT PBOOLEAN AnyChanges ) { return SpPtnCommitChanges(DiskNumber, AnyChanges); } VOID SpPtDeletePartitionsForRemoteBoot( PPARTITIONED_DISK PartDisk, PDISK_REGION StartRegion, PDISK_REGION EndRegion, BOOLEAN Extended ) { SpPtnDeletePartitionsForRemoteBoot(PartDisk, StartRegion, EndRegion, Extended); } VOID SpPtLocateSystemPartitions( VOID ) { SpPtnLocateSystemPartitions(); } #else #ifdef GPT_PARTITION_ENGINE // // Switching stubs for GPT_PARTITION_ENGINE // NTSTATUS SpPtPrepareDisks( IN PVOID SifHandle, OUT PDISK_REGION *InstallRegion, OUT PDISK_REGION *SystemPartitionRegion, IN PWSTR SetupSourceDevicePath, IN PWSTR DirectoryOnSetupSource, IN BOOLEAN RemoteBootRepartition ) { return SpPtnPrepareDisks(SifHandle, InstallRegion, SystemPartitionRegion, SetupSourceDevicePath, DirectoryOnSetupSource, RemoteBootRepartition); } VOID SpPtMakeRegionActive( IN PDISK_REGION Region ) { SpPtnMakeRegionActive(Region); } PDISK_REGION SpPtValidSystemPartitionArc( IN PVOID SifHandle, IN PWSTR SetupSourceDevicePath, IN PWSTR DirectoryOnSetupSource ) { return SpPtnValidSystemPartitionArc(SifHandle, SetupSourceDevicePath, DirectoryOnSetupSource, TRUE); } BOOL SpPtIsSystemPartitionRecognizable( VOID ) { return SpPtnIsSystemPartitionRecognizable(); } VOID SpPtLocateSystemPartitions( VOID ) { SpPtnLocateSystemPartitions(); } #endif #endif // NEW_PARTITION_ENGINE