windows-nt/Source/XPSP1/NT/base/fs/utils/ifsutil/inc/ifssys.hxx

265 lines
5.6 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
ifssys.hxx
Abstract:
This module contains the definition for the IFS_SYSTEM class.
The IFS_SYSTEM class is an abstract class which offers an
interface for communicating with the underlying operating system
on specific IFS issues.
Author:
Norbert P. Kusters (norbertk) 03-Sep-1991
--*/
#if ! defined( _IFS_SYSTEM_ )
#define _IFS_SYSTEM_
#include "drive.hxx"
#if defined ( _AUTOCHECK_ )
#define IFSUTIL_EXPORT
#elif defined ( _IFSUTIL_MEMBER_ )
#define IFSUTIL_EXPORT __declspec(dllexport)
#else
#define IFSUTIL_EXPORT __declspec(dllimport)
#endif
DECLARE_CLASS( CANNED_SECURITY );
DECLARE_CLASS( WSTRING );
DECLARE_CLASS( BIG_INT );
DECLARE_CLASS( IFS_SYSTEM );
class IFS_SYSTEM {
public:
STATIC
IFSUTIL_EXPORT
BOOLEAN
QueryNtfsVersion(
OUT PUCHAR Major,
OUT PUCHAR Minor,
IN PLOG_IO_DP_DRIVE Drive,
IN PVOID BootSectorData
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
QueryFileSystemName(
IN PCWSTRING NtDriveName,
OUT PWSTRING FileSystemName,
OUT PNTSTATUS ErrorCode DEFAULT NULL,
OUT PWSTRING FileSystemNameAndVersion DEFAULT NULL
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
DosDriveNameToNtDriveName(
IN PCWSTRING DosDriveName,
OUT PWSTRING NtDriveName
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
NtDriveNameToDosDriveName(
IN PCWSTRING NtDriveName,
OUT PWSTRING DosDriveName
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
QueryFreeDiskSpace(
IN PCWSTRING DosDriveName,
OUT PBIG_INT BytesFree
);
STATIC
IFSUTIL_EXPORT
VOID
QueryNtfsTime(
OUT PLARGE_INTEGER NtfsTime
);
STATIC
VOID
Reboot(
IN BOOLEAN PowerOff DEFAULT FALSE
);
STATIC
IFSUTIL_EXPORT
PCANNED_SECURITY
GetCannedSecurity(
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
EnableFileSystem(
IN PCWSTRING FileSystemName
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
IsFileSystemEnabled(
IN PCWSTRING FileSystemName,
OUT PBOOLEAN Error DEFAULT NULL
);
STATIC
IFSUTIL_EXPORT
ULONG
QueryPageSize(
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
QueryCanonicalNtDriveName(
IN PCWSTRING NtDriveName,
OUT PWSTRING CanonicalNtDriveName
);
STATIC
BOOLEAN
QueryNtSystemDriveName(
OUT PWSTRING NtSystemDriveName
);
STATIC
BOOLEAN
QuerySystemEnvironmentVariableValue(
IN PWSTRING VariableName,
IN ULONG ValueBufferLength,
OUT PVOID ValueBuffer,
OUT PUSHORT ValueLength
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
IsArcSystemPartition(
IN PCWSTRING NtDriveName,
OUT PBOOLEAN Error
);
STATIC
BOOLEAN
IsThisFat(
IN BIG_INT Sectors,
IN PVOID BootSectorData
);
STATIC
BOOLEAN
IsThisFat32(
IN BIG_INT Sectors,
IN PVOID BootSectorData
);
STATIC
BOOLEAN
IsThisHpfs(
IN BIG_INT Sectors,
IN PVOID BootSectorData,
IN PULONG SuperBlock,
IN PULONG SpareBlock
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
IsThisNtfs(
IN BIG_INT Sectors,
IN ULONG SectorSize,
IN PVOID BootSectorData
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
FileSetAttributes(
IN PCWSTRING FileName,
IN ULONG NewFileAttributes,
OUT PULONG OldAttributes
);
STATIC
BOOLEAN
FileSetAttributes(
IN HANDLE FileHandle,
IN ULONG NewFileAttributes,
OUT PULONG OldAttributes
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
WriteToFile(
IN PCWSTRING QualifiedFileName,
IN PVOID Data,
IN ULONG DataLength,
IN BOOLEAN Append
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
EnableVolumeCompression(
IN PCWSTRING NtDriveName
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
EnableVolumeUpgrade(
IN PCWSTRING NtDriveName
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
DismountVolume(
IN PCWSTRING NtDriveName
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
CheckValidSecurityDescriptor(
IN ULONG Length,
IN PISECURITY_DESCRIPTOR SecurityDescriptor
);
STATIC
IFSUTIL_EXPORT
BOOLEAN
IsVolumeDirty(
IN PWSTRING NtDriveName,
OUT PBOOLEAN Result
);
private:
STATIC PCANNED_SECURITY _CannedSecurity;
};
#endif // _IFS_SYSTEM_