windows-nt/Source/XPSP1/NT/base/fs/utils/ufat/inc/fatvol.hxx
2020-09-26 16:20:57 +08:00

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