windows-nt/Source/XPSP1/NT/base/fs/utils/dfrg/inc/bootoptimizentfs.h
2020-09-26 16:20:57 +08:00

109 lines
2.3 KiB
C

/**************************************************************************************************
FILENAME: BootOptimizeNtfs.h
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
DESCRIPTION:
Boot Optimize.
**************************************************************************************************/
//
// Prototype for NtFsControlFile and data structures
// used in its definition
//
#ifndef _BOOTOPTIMIZE_H_
#define _BOOTOPTIMIZE_H_
typedef struct _FILE_LIST_ENTRY *PFILE_LIST_ENTRY;
typedef struct _FREE_SPACE_ENTRY *PFREE_SPACE_ENTRY;
BOOL
InitialiseBootOptimise(
IN CONST BOOL bIsNtfs
);
DWORD
ProcessBootOptimise();
BOOL
UpdateInBootOptimiseList(
IN PFILE_LIST_ENTRY pFileListEntry = NULL
);
DWORD BootOptimize(
IN HANDLE hVolumeHandle,
IN LONGLONG BitmapSize,
IN LONGLONG BytesPerSector,
IN LONGLONG TotalClusters,
IN BOOL IsNtfs,
IN ULONGLONG MftZoneStart,
IN ULONGLONG MftZoneEnd,
IN TCHAR tDrive
);
BOOL LoadOptimizeFileList(
IN TCHAR* cBootOptimzePath,
IN BOOL IsNtfs,
IN TCHAR tDrive,
IN UINT uNumberofRecords
);
VOID FreeFileList();
LONGLONG GetSizeInformationAboutFiles();
LONGLONG GetFileSizeInfo(
IN HANDLE hBootOptimizeFileHandle
);
BOOL MoveFilesInOrder(
IN ULONGLONG lMoveFileHere,
IN ULONGLONG lEndOfFreeSpace,
IN HANDLE hBootVolumeHandle
);
BOOL GetBootOptimizeFileStreams(
IN HANDLE hBootOptimizeFileHandle,
IN TCHAR* tBootOptimizeFile,
IN UINT uNumberofRecords
);
static PTCHAR ParseStreamName(
IN PTCHAR StreamName
);
HANDLE GetFileHandle(
IN LPCTSTR lpFilePath
);
BOOL GetRegistryEntires(
OUT TCHAR cBootOptimzePath[MAX_PATH]
);
VOID SetRegistryEntires(
IN LONGLONG lLcnStartLocation,
IN LONGLONG lLcnEndLocation
);
BOOL CloseFileHandle(
IN HANDLE hBootOptimizeFileHandle
);
BOOL OpenReadBootOptimeFileIntoList(
IN TCHAR* cBootOptimzePath,
IN BOOL IsNtfs,
IN TCHAR tDrive
);
BOOL IsAValidFile(
IN TCHAR pBootOptimizeFileName[MAX_PATH+1],
IN TCHAR tDrive
);
VOID SaveErrorInRegistry(
TCHAR* tComplete,
TCHAR* tErrorString
);
LONGLONG GetStartingEndLncLocations(
IN PTCHAR pRegKey
);
BOOL CheckDateTimeStampInputFile(
IN TCHAR cBootOptimzePath[MAX_PATH]
);
#endif // #define _BOOTOPTIMIZE_H_