73 lines
1.7 KiB
C
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 );
|
|
} |