168 lines
3.2 KiB
C++
168 lines
3.2 KiB
C++
/*++
|
|
|
|
Copyright (c) 1990-2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
fatvol.hxx
|
|
|
|
Abstract:
|
|
|
|
This class implements FAT only VOLUME items.
|
|
|
|
Author:
|
|
|
|
Mark Shavlik (marks) 13-Feb-90
|
|
|
|
--*/
|
|
|
|
#if !defined(FATVOL)
|
|
|
|
#define FATVOL
|
|
|
|
#include "volume.hxx"
|
|
#include "rfatsa.hxx"
|
|
|
|
//
|
|
// Forward references
|
|
//
|
|
|
|
DECLARE_CLASS( DP_DRIVE );
|
|
DECLARE_CLASS( FAT_VOL );
|
|
DECLARE_CLASS( MESSAGE );
|
|
|
|
|
|
#if !defined( _SETUP_LOADER_ )
|
|
|
|
|
|
class FAT_VOL : public VOL_LIODPDRV {
|
|
|
|
public:
|
|
|
|
DECLARE_CONSTRUCTOR( FAT_VOL );
|
|
|
|
VIRTUAL
|
|
~FAT_VOL(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
FORMAT_ERROR_CODE
|
|
Initialize(
|
|
IN PCWSTRING NtDriveName,
|
|
IN OUT PMESSAGE Message DEFAULT NULL,
|
|
IN BOOLEAN ExclusiveWrite DEFAULT FALSE,
|
|
IN BOOLEAN FormatMedia DEFAULT FALSE,
|
|
IN MEDIA_TYPE MediaType DEFAULT Unknown,
|
|
IN USHORT FormatType DEFAULT DP_DRIVE::NONE
|
|
);
|
|
|
|
//
|
|
// Chkdsk's version of initialize.
|
|
//
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Initialize(
|
|
IN OUT PMESSAGE Message DEFAULT NULL,
|
|
IN PCWSTRING NtDriveName DEFAULT NULL,
|
|
IN BOOLEAN OnlyIfDirty DEFAULT FALSE,
|
|
IN USHORT FormatType DEFAULT DP_DRIVE::NONE
|
|
);
|
|
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
IsFileContiguous(
|
|
IN PCWSTRING FullPathFileName,
|
|
IN OUT PMESSAGE Message DEFAULT NULL,
|
|
OUT PULONG NumBlocks DEFAULT NULL
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
ContiguityReport(
|
|
IN PCWSTRING DirectoryPath,
|
|
IN PCDSTRING FilesToCheck,
|
|
IN ULONG NumberOfFiles,
|
|
IN OUT PMESSAGE Message
|
|
);
|
|
|
|
NONVIRTUAL
|
|
PVOL_LIODPDRV
|
|
QueryDupVolume(
|
|
IN PCWSTRING NtDriveName,
|
|
IN OUT PMESSAGE Message DEFAULT NULL,
|
|
IN BOOLEAN ExclusiveWrite DEFAULT FALSE,
|
|
IN BOOLEAN FormatMedia DEFAULT FALSE,
|
|
IN MEDIA_TYPE MediaType DEFAULT Unknown
|
|
) CONST;
|
|
|
|
private:
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Construct (
|
|
);
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Destroy(
|
|
);
|
|
|
|
REAL_FAT_SA _fatsa;
|
|
|
|
};
|
|
|
|
|
|
#else // _SETUP_LOADER_ is defined
|
|
|
|
|
|
class FAT_VOL : public VOL_LIODPDRV {
|
|
|
|
public:
|
|
|
|
DECLARE_CONSTRUCTOR( FAT_VOL );
|
|
|
|
VIRTUAL
|
|
~FAT_VOL(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Initialize(
|
|
IN ULONG DeviceHandle,
|
|
IN USHORT FormatType
|
|
);
|
|
|
|
VIRTUAL
|
|
ARC_STATUS
|
|
MarkDirty(
|
|
);
|
|
|
|
VIRTUAL
|
|
ARC_STATUS
|
|
Flush(
|
|
IN BOOLEAN JustHandle
|
|
);
|
|
|
|
private:
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Construct (
|
|
);
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Destroy(
|
|
);
|
|
|
|
REAL_FAT_SA _fatsa;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _SETUP_LOADER_
|
|
|
|
#endif
|