mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.5 KiB
113 lines
2.5 KiB
/**************************************************************************************************
|
|
|
|
FILENAME: BootOptimizeFat.h
|
|
|
|
COPYRIGHT© 2001 Microsoft Corporation and Executive Software International, Inc.
|
|
|
|
DESCRIPTION:
|
|
Boot Optimize.
|
|
|
|
**************************************************************************************************/
|
|
//
|
|
// Prototype for NtFsControlFile and data structures
|
|
// used in its definition
|
|
//
|
|
//typedef LONG NTSTATUS;
|
|
|
|
//
|
|
// This is the definition for a VCN/LCN (virtual cluster/logical cluster)
|
|
// mapping pair that is returned in the buffer passed to
|
|
// FSCTL_GET_RETRIEVAL_POINTERS
|
|
//
|
|
typedef struct {
|
|
ULONGLONG Vcn;
|
|
ULONGLONG Lcn;
|
|
} MAPPING_PAIR, *PMAPPING_PAIR;
|
|
|
|
//
|
|
// This is the definition for the buffer that FSCTL_GET_RETRIEVAL_POINTERS
|
|
// returns. It consists of a header followed by mapping pairs
|
|
//
|
|
typedef struct {
|
|
ULONG NumberOfPairs;
|
|
ULONGLONG StartVcn;
|
|
MAPPING_PAIR Pair[1];
|
|
} GET_RETRIEVAL_DESCRIPTOR, *PGET_RETRIEVAL_DESCRIPTOR;
|
|
|
|
|
|
|
|
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();
|
|
ULONGLONG GetFileSizeInfo(
|
|
IN HANDLE hBootOptimizeFileHandle
|
|
);
|
|
|
|
BOOL MoveFilesInOrder(
|
|
IN ULONGLONG lFirstAvailableFreeSpace,
|
|
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 TCHAR* tBootOptimizeFile
|
|
);
|
|
|
|
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
|
|
);
|
|
UINT CountNumberofRecordsinFile(
|
|
IN TCHAR* cBootOptimzePath
|
|
);
|
|
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]
|
|
);
|
|
|
|
|
|
|
|
|