Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

174 lines
4.7 KiB

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
dbfsconv.hxx
Abstract:
This module declares routines to uncompress doublespace fileystems.
Author:
Matthew Bradburn (mattbr) 24-Nov-1993
Environment:
ULIB, User Mode
--*/
#if ! defined DBFS_CONV_DEFN
#define DBFS_CONV_DEFN
#include "ulib.hxx"
#include "fatdbvol.hxx"
#include "fatdbsa.hxx"
#include "secmap.hxx"
#include "treemap.hxx"
#include "ifsentry.hxx"
typedef struct _DBFS_FILE_INFO {
BOOLEAN fIsDirectory; // is the file a directory
UCHAR bAttributes; // file attributes
ULONG uFileSize; // file size
LARGE_INTEGER liTimeStamp; // last mod time
} DBFS_FILE_INFO, *PDBFS_FILE_INFO;
class DBFS_CONV : OBJECT {
public:
DECLARE_CONSTRUCTOR(DBFS_CONV);
NONVIRTUAL
BOOLEAN
Initialize(
IN PCWSTRING NtDriveName,
IN PCWSTRING HostFileName,
IN OUT PMESSAGE Message
);
NONVIRTUAL
BOOLEAN
Convert(
IN OUT PMESSAGE Message,
IN BOOLEAN Verbose,
OUT PCONVERT_STATUS Status
);
NONVIRTUAL BOOLEAN
CheckFreeSpace(
IN OUT PMESSAGE Message,
IN BOOLEAN HostIsCompressed,
IN BOOLEAN Verbose,
IN BOOLEAN WillConvertHost
);
private:
PFATDB_VOL _fatdbvol;
PFATDB_SA _fatdbsa;
PFAT _fat;
SECTOR_MAP _secmap;
TREE_MAP _parent_map;
ULONG _host_sector_size;
ULONG _new_host_sec_clus;
ULONG _host_sec_clus;
PCWSTRING _cvf_name;
DSTRING _win_destdrive;
PUCHAR _buf; // decompression workspace
NONVIRTUAL VOID
Construct();
NONVIRTUAL BOOLEAN
MapSectorsAndTakeCensus(
IN OUT PMESSAGE Message,
OUT PCENSUS_REPORT Census
);
NONVIRTUAL BOOLEAN
CreateHostDirectoryStructure(
IN OUT PMESSAGE Message,
IN OUT PCONVERT_STATUS Status
);
NONVIRTUAL BOOLEAN
ExtractCompressedFiles(
IN OUT PMESSAGE Message,
IN BOOLEAN Verbose,
IN PCENSUS_REPORT Census,
OUT PCONVERT_STATUS Status
);
NONVIRTUAL BOOLEAN
DeleteCvf(
IN OUT PMESSAGE Message
);
NONVIRTUAL BOOLEAN
CopyClusterChainToFile(
IN OUT PMESSAGE Message,
IN BOOLEAN Verbose,
IN USHORT StartingCluster,
IN PWSTRING FilePath,
IN PDBFS_FILE_INFO FileInfo,
OUT PCONVERT_STATUS Status
);
NONVIRTUAL BOOLEAN
EraseFile(
IN OUT PMESSAGE Message,
IN USHORT FirstCluster
);
NONVIRTUAL BOOLEAN
FindPathFromStartingCluster(
IN OUT PMESSAGE Message,
IN USHORT StartingCluster,
OUT PWSTRING Path,
OUT PDBFS_FILE_INFO FileInfo
);
NONVIRTUAL BOOLEAN
RelocateClusterChain(
IN OUT PMESSAGE Message,
IN BOOLEAN Verbose,
IN USHORT Cluster,
IN ULONG LastUsedSector,
IN OUT PCENSUS_REPORT Census,
OUT PCONVERT_STATUS Status
);
NONVIRTUAL BOOLEAN
MapClusterChainSectors(
IN USHORT Cluster
);
NONVIRTUAL BOOLEAN
FindAndUncompressFile(
IN OUT PMESSAGE Message,
IN BOOLEAN Verbose,
OUT PCONVERT_STATUS Status
);
NONVIRTUAL BOOLEAN
ReplaceClusterInChain(
IN USHORT ClusterChain,
IN USHORT Cluster,
IN USHORT NewCluster,
IN USHORT ParentDir,
OUT PUSHORT NewChainHead
);
NONVIRTUAL BOOLEAN
WriteDir(
IN PFATDIR Dir,
IN USHORT StartingCluster
);
};
#endif // DBFS_CONV_DEFN