windows-nt/Source/XPSP1/NT/base/ntsetup/opktools/factory/extpart.c
2020-09-26 16:20:57 +08:00

73 lines
1.7 KiB
C

/****************************************************************************\
EXTPART.C / Factory Mode (FACTORY.EXE)
Microsoft Confidential
Copyright (c) Microsoft Corporation 2001
All rights reserved
Source file for Factory that contains the extend partition state
functions.
05/2001 - Jason Cohen (JCOHEN)
Added this new source file for factory for extending the system
partition.
\****************************************************************************/
//
// Include File(s):
//
#include "factoryp.h"
//
// Internal Define(s):
//
#define ENV_SYSTEMDRIVE _T("%SystemDrive%")
//
// External Function(s):
//
BOOL ExtendPart(LPSTATEDATA lpStateData)
{
BOOL bRet = TRUE;
LPTSTR lpszDrive;
ULONG uSize;
// Only need to do anything if the key exists.
//
if ( DisplayExtendPart(lpStateData) )
{
// At this point, if anything doesn't work we
// should return FALSE.
//
bRet = FALSE;
// Get the size to use for the partition. If it is one, then just pass
// zero so it uses all the free space. We also need to know the drive
// to extend.
//
uSize = (ULONG) GetPrivateProfileInt(INI_SEC_WBOM_SETTINGS, INI_KEY_WBOM_EXTENDPART, 0, lpStateData->lpszWinBOMPath);
if ( ( uSize > 0 ) &&
( lpszDrive = AllocateExpand(ENV_SYSTEMDRIVE) ) )
{
bRet = SetupExtendPartition(*lpszDrive, (1 == uSize) ? 0 : uSize);
FREE(lpszDrive);
}
}
return bRet;
}
BOOL DisplayExtendPart(LPSTATEDATA lpStateData)
{
return ( GetPrivateProfileInt(INI_SEC_WBOM_SETTINGS, INI_KEY_WBOM_EXTENDPART, 0, lpStateData->lpszWinBOMPath) > 0 );
}