mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-30 05:18:31 -05:00
Ext4Fsd master
This commit is contained in:
913
Ext2Mgr/enumDisk.h
Normal file
913
Ext2Mgr/enumDisk.h
Normal file
@@ -0,0 +1,913 @@
|
||||
#ifndef _ENUM_DISK_INCLUDE_
|
||||
#define _ENUM_DISK_INCLUDE_
|
||||
|
||||
#include "ntdll.h"
|
||||
#include <objbase.h>
|
||||
#include <initguid.h>
|
||||
#include <cfgmgr32.h>
|
||||
#include <setupapi.h>
|
||||
#include <regstr.h>
|
||||
#include <winsvc.h>
|
||||
#include "dbt.h"
|
||||
#include "ext2fs.h"
|
||||
#include <winioctl.h>
|
||||
|
||||
//#include <devioctl.h>
|
||||
//#include <mountmgr.h>
|
||||
|
||||
|
||||
|
||||
/******************************************************************
|
||||
* *
|
||||
* VersionHelpers.h -- This module defines helper functions to *
|
||||
* promote version check with proper *
|
||||
* comparisons. *
|
||||
* *
|
||||
* Copyright (c) Microsoft Corp. All rights reserved. *
|
||||
* *
|
||||
******************************************************************/
|
||||
#ifndef _versionhelpers_H_INCLUDED_
|
||||
#define _versionhelpers_H_INCLUDED_
|
||||
|
||||
#ifndef ___XP_BUILD
|
||||
#define WINAPI_PARTITION_DESKTOP (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
|
||||
#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
|
||||
#define WINAPI_FAMILY_PARTITION(Partitions) (Partitions)
|
||||
|
||||
#define _WIN32_WINNT_NT4 0x0400
|
||||
#define _WIN32_WINNT_WIN2K 0x0500
|
||||
#define _WIN32_WINNT_WINXP 0x0501
|
||||
#define _WIN32_WINNT_WS03 0x0502
|
||||
#define _WIN32_WINNT_WIN6 0x0600
|
||||
#define _WIN32_WINNT_VISTA 0x0600
|
||||
#define _WIN32_WINNT_WS08 0x0600
|
||||
#define _WIN32_WINNT_LONGHORN 0x0600
|
||||
#define _WIN32_WINNT_WIN7 0x0601
|
||||
#define _WIN32_WINNT_WIN8 0x0602
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma once
|
||||
#endif // _MSC_VER
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#define VERSIONHELPERAPI inline bool
|
||||
|
||||
#else // __cplusplus
|
||||
|
||||
#define VERSIONHELPERAPI FORCEINLINE BOOL
|
||||
|
||||
#endif // __cplusplus
|
||||
|
||||
#define _WIN32_WINNT_WINBLUE 0x0603
|
||||
#define _WIN32_WINNT_WIN10 0x0A00
|
||||
|
||||
typedef NT::NTSTATUS( NTAPI* fnRtlGetVersion )(PRTL_OSVERSIONINFOW lpVersionInformation);
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsVersionOrGreater(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor)
|
||||
{
|
||||
/*OSVERSIONINFOEXW osvi = { sizeof(osvi), 0, 0, 0, 0, {0}, 0, 0 };
|
||||
DWORDLONG const dwlConditionMask = VerSetConditionMask(
|
||||
VerSetConditionMask(
|
||||
VerSetConditionMask(
|
||||
0, VER_MAJORVERSION, VER_GREATER_EQUAL),
|
||||
VER_MINORVERSION, VER_GREATER_EQUAL),
|
||||
VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL);
|
||||
osvi.dwMajorVersion = wMajorVersion;
|
||||
osvi.dwMinorVersion = wMinorVersion;
|
||||
osvi.wServicePackMajor = wServicePackMajor;
|
||||
return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != FALSE;*/
|
||||
|
||||
RTL_OSVERSIONINFOEXW verInfo = { 0 };
|
||||
verInfo.dwOSVersionInfoSize = sizeof( verInfo );
|
||||
|
||||
static fnRtlGetVersion RtlGetVersion = (fnRtlGetVersion)GetProcAddress( GetModuleHandleW( L"ntdll.dll" ), "RtlGetVersion" );
|
||||
|
||||
if (RtlGetVersion != 0 && RtlGetVersion( (PRTL_OSVERSIONINFOW)&verInfo ) == 0)
|
||||
{
|
||||
if (verInfo.dwMajorVersion > wMajorVersion)
|
||||
return true;
|
||||
else if (verInfo.dwMajorVersion < wMajorVersion)
|
||||
return false;
|
||||
|
||||
if (verInfo.dwMinorVersion > wMinorVersion)
|
||||
return true;
|
||||
else if (verInfo.dwMinorVersion < wMinorVersion)
|
||||
return false;
|
||||
|
||||
if (verInfo.wServicePackMajor >= wServicePackMajor)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsXPOrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WINXP ), LOBYTE( _WIN32_WINNT_WINXP ), 0 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsXPSP1OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WINXP ), LOBYTE( _WIN32_WINNT_WINXP ), 1 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsXPSP2OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WINXP ), LOBYTE( _WIN32_WINNT_WINXP ), 2 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsXPSP3OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WINXP ), LOBYTE( _WIN32_WINNT_WINXP ), 3 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsVistaOrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_VISTA ), LOBYTE( _WIN32_WINNT_VISTA ), 0 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsVistaSP1OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_VISTA ), LOBYTE( _WIN32_WINNT_VISTA ), 1 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsVistaSP2OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_VISTA ), LOBYTE( _WIN32_WINNT_VISTA ), 2 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindows7OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WIN7 ), LOBYTE( _WIN32_WINNT_WIN7 ), 0 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindows7SP1OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WIN7 ), LOBYTE( _WIN32_WINNT_WIN7 ), 1 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindows8OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WIN8 ), LOBYTE( _WIN32_WINNT_WIN8 ), 0 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindows8Point1OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WINBLUE ), LOBYTE( _WIN32_WINNT_WINBLUE ), 0 );
|
||||
}
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindows10OrGreater()
|
||||
{
|
||||
return IsWindowsVersionOrGreater( HIBYTE( _WIN32_WINNT_WIN10 ), LOBYTE( _WIN32_WINNT_WIN10 ), 0 );
|
||||
}
|
||||
|
||||
|
||||
VERSIONHELPERAPI
|
||||
IsWindowsServer()
|
||||
{
|
||||
OSVERSIONINFOEXW osvi = { sizeof( osvi ), 0, 0, 0, 0, { 0 }, 0, 0, 0, VER_NT_WORKSTATION };
|
||||
DWORDLONG const dwlConditionMask = VerSetConditionMask( 0, VER_PRODUCT_TYPE, VER_EQUAL );
|
||||
|
||||
return !VerifyVersionInfoW( &osvi, VER_PRODUCT_TYPE, dwlConditionMask );
|
||||
}
|
||||
|
||||
|
||||
#endif // _VERSIONHELPERS_H_INCLUDED_
|
||||
|
||||
/*
|
||||
* system definitions
|
||||
*/
|
||||
|
||||
#define USING_IOCTL_EX TRUE
|
||||
|
||||
#if (USING_IOCTL_EX)
|
||||
|
||||
//
|
||||
// New IOCTLs for GUID Partition tabled disks.
|
||||
//
|
||||
|
||||
|
||||
#define IOCTL_DISK_GET_DRIVE_LAYOUT_EXT IOCTL_DISK_GET_DRIVE_LAYOUT_EX
|
||||
#define IOCTL_DISK_SET_DRIVE_LAYOUT_EXT IOCTL_DISK_SET_DRIVE_LAYOUT_EX
|
||||
#define PARTITION_INFORMATION_EXT PARTITION_INFORMATION_EX
|
||||
#define PPARTITION_INFORMATION_EXT PARTITION_INFORMATION_EX *
|
||||
#define DRIVE_LAYOUT_INFORMATION_EXT DRIVE_LAYOUT_INFORMATION_EX
|
||||
#define PDRIVE_LAYOUT_INFORMATION_EXT DRIVE_LAYOUT_INFORMATION_EX *
|
||||
|
||||
#else
|
||||
|
||||
#define IOCTL_DISK_GET_DRIVE_LAYOUT_EXT IOCTL_DISK_GET_DRIVE_LAYOUT
|
||||
#define IOCTL_DISK_SET_DRIVE_LAYOUT_EXT IOCTL_DISK_SET_DRIVE_LAYOUT
|
||||
typedef PARTITION_INFORMATION PARTITION_INFORMATION_EXT, *PPARTITION_INFORMATION_EXT;
|
||||
typedef DRIVE_LAYOUT_INFORMATION DRIVE_LAYOUT_INFORMATION_EXT, *PDRIVE_LAYOUT_INFORMATION_EXT;
|
||||
|
||||
#endif // USING_IOCTL_EX
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Bus Type
|
||||
//
|
||||
|
||||
static char* BusType[] = {
|
||||
"UNKNOWN", // 0x00
|
||||
"SCSI",
|
||||
"ATAPI",
|
||||
"ATA",
|
||||
"IEEE 1394",
|
||||
"SSA",
|
||||
"FIBRE",
|
||||
"USB",
|
||||
"RAID"
|
||||
};
|
||||
|
||||
//
|
||||
// SCSI Device Type
|
||||
//
|
||||
|
||||
static char* DeviceType[] = {
|
||||
"Direct Access Device", // 0x00
|
||||
"Tape Device", // 0x01
|
||||
"Printer Device", // 0x02
|
||||
"Processor Device", // 0x03
|
||||
"WORM Device", // 0x04
|
||||
"CDROM Device", // 0x05
|
||||
"Scanner Device", // 0x06
|
||||
"Optical Disk", // 0x07
|
||||
"Media Changer", // 0x08
|
||||
"Comm. Device", // 0x09
|
||||
"ASCIT8", // 0x0A
|
||||
"ASCIT8", // 0x0B
|
||||
"Array Device", // 0x0C
|
||||
"Enclosure Device", // 0x0D
|
||||
"RBC Device", // 0x0E
|
||||
"Unknown Device" // 0x0F
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* IFS format callbacks
|
||||
*/
|
||||
|
||||
//
|
||||
// Output command
|
||||
//
|
||||
typedef struct {
|
||||
DWORD Lines;
|
||||
PCHAR Output;
|
||||
} TEXTOUTPUT, *PTEXTOUTPUT;
|
||||
|
||||
//
|
||||
// Callback command types
|
||||
//
|
||||
typedef enum {
|
||||
PROGRESS,
|
||||
DONEWITHSTRUCTURE,
|
||||
UNKNOWN2,
|
||||
UNKNOWN3,
|
||||
UNKNOWN4,
|
||||
UNKNOWN5,
|
||||
INSUFFICIENTRIGHTS,
|
||||
UNKNOWN7,
|
||||
UNKNOWN8,
|
||||
UNKNOWN9,
|
||||
UNKNOWNA,
|
||||
DONE,
|
||||
UNKNOWNC,
|
||||
UNKNOWND,
|
||||
OUTPUT,
|
||||
STRUCTUREPROGRESS
|
||||
} CALLBACKCOMMAND;
|
||||
|
||||
/*
|
||||
* ext2 codepages
|
||||
*/
|
||||
|
||||
extern CHAR * gCodepages[];
|
||||
|
||||
//
|
||||
// FMIFS callback definition
|
||||
//
|
||||
typedef BOOL (__stdcall *PFMIFSCALLBACK)( CALLBACKCOMMAND Command, DWORD SubAction, PVOID ActionInfo );
|
||||
|
||||
//
|
||||
// Chkdsk command in FMIFS
|
||||
//
|
||||
typedef VOID (__stdcall *PCHKDSK)( PWCHAR DriveRoot,
|
||||
PWCHAR Format,
|
||||
BOOL CorrectErrors,
|
||||
BOOL Verbose,
|
||||
BOOL CheckOnlyIfDirty,
|
||||
BOOL ScanDrive,
|
||||
PVOID Unused2,
|
||||
PVOID Unused3,
|
||||
PFMIFSCALLBACK Callback );
|
||||
|
||||
//
|
||||
// Format command in FMIFS
|
||||
//
|
||||
|
||||
// media flags
|
||||
#define FMIFS_HARDDISK 0xC
|
||||
#define FMIFS_FLOPPY 0x8
|
||||
|
||||
typedef VOID (__stdcall *PFORMATEX)( PWCHAR DriveRoot,
|
||||
DWORD MediaFlag,
|
||||
PWCHAR Format,
|
||||
PWCHAR Label,
|
||||
BOOL QuickFormat,
|
||||
DWORD ClusterSize,
|
||||
PFMIFSCALLBACK Callback );
|
||||
|
||||
#include "..\ext3fsd\include\common.h"
|
||||
|
||||
/*
|
||||
* structure definitions
|
||||
*/
|
||||
|
||||
typedef struct _EXT2_PARTITION *PEXT2_PARTITION;
|
||||
|
||||
typedef struct _EXT2_DISK {
|
||||
|
||||
ULONG Magic;
|
||||
ULONG Null;
|
||||
CHAR Name[256];
|
||||
ULONGLONG Size;
|
||||
|
||||
BOOL bEjected;
|
||||
BOOL bLoaded;
|
||||
BOOL IsFile;
|
||||
UCHAR OrderNo;
|
||||
UCHAR NumParts;
|
||||
UCHAR ExtStart;
|
||||
DISK_GEOMETRY DiskGeometry;
|
||||
STORAGE_DEVICE_DESCRIPTOR SDD;
|
||||
STORAGE_ADAPTER_DESCRIPTOR SAD;
|
||||
PDRIVE_LAYOUT_INFORMATION_EXT Layout;
|
||||
|
||||
PEXT2_PARTITION DataParts;
|
||||
} EXT2_DISK, *PEXT2_DISK;
|
||||
|
||||
#define EXT2_DISK_MAGIC 'EDSK'
|
||||
#define EXT2_DISK_NULL_MAGIC 'ENUL'
|
||||
|
||||
typedef struct _EXT2_CDROM {
|
||||
ULONG Magic[2];
|
||||
CHAR Name[256];
|
||||
ULONGLONG Size;
|
||||
|
||||
UCHAR OrderNo;
|
||||
BOOL bLoaded;
|
||||
BOOL bEjected;
|
||||
BOOL bIsDVD;
|
||||
ULONGLONG DrvLetters;
|
||||
|
||||
DISK_GEOMETRY DiskGeometry;
|
||||
STORAGE_DEVICE_DESCRIPTOR SDD;
|
||||
STORAGE_ADAPTER_DESCRIPTOR SAD;
|
||||
EXT2_VOLUME_PROPERTY3 EVP;
|
||||
} EXT2_CDROM, *PEXT2_CDROM;
|
||||
|
||||
#define EXT2_CDROM_DEVICE_MAGIC 'ECDR'
|
||||
#define EXT2_CDROM_VOLUME_MAGIC 'ECDV'
|
||||
|
||||
|
||||
typedef struct _EXT2_VOLUME {
|
||||
ULONG Magic;
|
||||
struct _EXT2_VOLUME * Next;
|
||||
CHAR Name[REGSTR_VAL_MAX_HCID_LEN];
|
||||
ULONGLONG DrvLetters;
|
||||
BOOL bRecognized;
|
||||
BOOL bDynamic;
|
||||
PVOLUME_DISK_EXTENTS Extent;
|
||||
NT::FILE_FS_DEVICE_INFORMATION FsdInfo;
|
||||
NT::FILE_FS_SIZE_INFORMATION FssInfo;
|
||||
union {
|
||||
NT::FILE_FS_ATTRIBUTE_INFORMATION FsaInfo;
|
||||
CHAR _tmp_alinged_buf[MAX_PATH];
|
||||
};
|
||||
CHAR FileSystem[64];
|
||||
EXT2_VOLUME_PROPERTY3 EVP;
|
||||
PEXT2_PARTITION Part;
|
||||
} EXT2_VOLUME, *PEXT2_VOLUME;
|
||||
|
||||
#define EXT2_VOLUME_MAGIC 'EVOL'
|
||||
|
||||
typedef struct _EXT2_PARTITION {
|
||||
ULONG Magic;
|
||||
DWORD PartType;
|
||||
PEXT2_DISK Disk;
|
||||
PPARTITION_INFORMATION_EXT Entry;
|
||||
ULONGLONG DrvLetters;
|
||||
PEXT2_VOLUME Volume;
|
||||
UCHAR Number;
|
||||
CHAR Name[REGSTR_VAL_MAX_HCID_LEN];
|
||||
} EXT2_PARTITION;
|
||||
#define EXT2_PART_MAGIC 'EPRT'
|
||||
|
||||
typedef struct _EXT2_LETTER {
|
||||
|
||||
UCHAR Letter;
|
||||
BOOL bInvalid;
|
||||
BOOL bUsed;
|
||||
BOOL bTemporary;
|
||||
UINT DrvType;
|
||||
|
||||
PVOLUME_DISK_EXTENTS Extent;
|
||||
PSTORAGE_DEVICE_NUMBER SDN;
|
||||
|
||||
CHAR SymLink[MAX_PATH];
|
||||
} EXT2_LETTER, *PEXT2_LETTER;
|
||||
|
||||
|
||||
/*
|
||||
* global definitions
|
||||
*/
|
||||
|
||||
extern BOOL g_bAutoMount;
|
||||
extern ULONG g_nFlps;
|
||||
extern ULONG g_nDisks;
|
||||
extern ULONG g_nCdroms;
|
||||
extern ULONG g_nVols;
|
||||
|
||||
extern EXT2_LETTER drvLetters[26];
|
||||
extern EXT2_LETTER drvDigits[10];
|
||||
|
||||
extern PEXT2_DISK gDisks;
|
||||
extern PEXT2_CDROM gCdroms;
|
||||
extern PEXT2_VOLUME gVols;
|
||||
|
||||
|
||||
/*
|
||||
* routines definitions
|
||||
*/
|
||||
|
||||
char *PartitionString(int type);
|
||||
char *DriveTypeString(UINT type);
|
||||
char *DeviceTypeString(DEVICE_TYPE type);
|
||||
char *BusTypeString(STORAGE_BUS_TYPE BusType);
|
||||
|
||||
BOOL IsWindows2000();
|
||||
BOOL IsVistaOrAbove();
|
||||
|
||||
BOOL CanDoLocalMount();
|
||||
|
||||
#define EXT2_DESIRED_ACCESS (GENERIC_READ)
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2Open(
|
||||
PCHAR FileName,
|
||||
PHANDLE Handle,
|
||||
ULONG DesiredAccess
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2Close(HANDLE* Handle);
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2WriteDisk(
|
||||
HANDLE Handle,
|
||||
BOOL IsFile,
|
||||
ULONG SectorSize,
|
||||
ULONGLONG Offset,
|
||||
ULONG Length,
|
||||
PVOID Buffer
|
||||
);
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2Read(
|
||||
IN HANDLE Handle,
|
||||
IN BOOL IsFile,
|
||||
IN ULONG SectorSize,
|
||||
IN ULONGLONG Offset,
|
||||
IN ULONG Length,
|
||||
IN PVOID Buffer
|
||||
);
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2QueryDisk(
|
||||
HANDLE Handle,
|
||||
PDISK_GEOMETRY DiskGeometry
|
||||
);
|
||||
|
||||
PVOLUME_DISK_EXTENTS
|
||||
Ext2QueryVolumeExtents(
|
||||
HANDLE hVolume
|
||||
);
|
||||
|
||||
PVOLUME_DISK_EXTENTS
|
||||
Ext2QueryDriveExtents(
|
||||
CHAR DriveLetter
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2QueryDrvLetter(
|
||||
PEXT2_LETTER drvLetter
|
||||
);
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2QueryMediaType(
|
||||
HANDLE Handle,
|
||||
PDWORD MediaType
|
||||
);
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2QueryProperty(
|
||||
HANDLE Handle,
|
||||
STORAGE_PROPERTY_ID Id,
|
||||
PVOID DescBuf,
|
||||
ULONG DescSize
|
||||
);
|
||||
|
||||
PDRIVE_LAYOUT_INFORMATION_EXT
|
||||
Ext2QueryDriveLayout(
|
||||
HANDLE Handle,
|
||||
PUCHAR NumOfParts
|
||||
);
|
||||
|
||||
NT::NTSTATUS
|
||||
Ext2SetDriveLayout(
|
||||
HANDLE Handle,
|
||||
PDRIVE_LAYOUT_INFORMATION_EXT Layout
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2SetPartitionType(
|
||||
PEXT2_PARTITION Part,
|
||||
BYTE Type
|
||||
);
|
||||
|
||||
PEXT2_PARTITION
|
||||
Ext2QueryVolumePartition(
|
||||
PEXT2_VOLUME Volume
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2FlushVolume(CHAR *Device);
|
||||
|
||||
BOOL
|
||||
Ext2QuerySysConfig();
|
||||
|
||||
BOOL
|
||||
Ext2CompareExtents(
|
||||
PVOLUME_DISK_EXTENTS ext1,
|
||||
PVOLUME_DISK_EXTENTS ext2
|
||||
);
|
||||
|
||||
ULONGLONG
|
||||
Ext2QueryVolumeDrvLetters(PEXT2_VOLUME Volume);
|
||||
|
||||
VOID
|
||||
Ext2QueryVolumeDisks(PEXT2_VOLUME Volume);
|
||||
|
||||
ULONGLONG
|
||||
Ext2QueryCdromDrvLetters(PEXT2_CDROM Cdrom);
|
||||
|
||||
VOID
|
||||
Ext2DrvNotify(UCHAR drive, int mount);
|
||||
|
||||
BOOL
|
||||
Ext2QueryExt2Property (
|
||||
HANDLE Handle,
|
||||
PEXT2_VOLUME_PROPERTY3 EVP
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2QueryPerfStat (
|
||||
HANDLE Handle,
|
||||
PEXT2_QUERY_PERFSTAT Stat,
|
||||
PEXT2_PERF_STATISTICS_V1 *PerfV1,
|
||||
PEXT2_PERF_STATISTICS_V2 *PerfV2
|
||||
);
|
||||
|
||||
BOOL Ext2IsNullUuid (__u8 * uuid);
|
||||
BOOL
|
||||
Ext2CheckVolumeRegistryProperty(
|
||||
PEXT2_VOLUME_PROPERTY3 EVP
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2SetDefaultVolumeRegistryProperty(
|
||||
PEXT2_VOLUME_PROPERTY3 EVP
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2StorePropertyinRegistry(
|
||||
PEXT2_VOLUME_PROPERTY3 EVP
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2SetExt2Property (
|
||||
HANDLE Handle,
|
||||
PEXT2_VOLUME_PROPERTY3 EVP
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2QueryGlobalProperty(
|
||||
ULONG * ulStartup,
|
||||
BOOL * bReadonly,
|
||||
BOOL * bExt3Writable,
|
||||
CHAR * Codepage,
|
||||
CHAR * sPrefix,
|
||||
CHAR * sSuffix,
|
||||
BOOL * bAutoMount
|
||||
);
|
||||
|
||||
INT
|
||||
Ext2QueryDrvVersion(
|
||||
CHAR * Version,
|
||||
CHAR * Date,
|
||||
CHAR * Time
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2SetGlobalProperty (
|
||||
ULONG ulStartup,
|
||||
BOOLEAN bReadonly,
|
||||
BOOLEAN bExt3Writable,
|
||||
CHAR * Codepage,
|
||||
CHAR * sPrefix,
|
||||
CHAR * sSuffix,
|
||||
BOOL bAutoMount
|
||||
);
|
||||
|
||||
BOOL Ext2IsX64System();
|
||||
|
||||
BOOL
|
||||
Ext2IsServiceStarted();
|
||||
|
||||
BOOL
|
||||
Ext2StartService(CHAR *service);
|
||||
|
||||
BOOL
|
||||
Ext2StartExt2Srv();
|
||||
|
||||
BOOL
|
||||
Ext2StartExt2Fsd();
|
||||
|
||||
CString
|
||||
Ext2SysInformation();
|
||||
|
||||
BOOL
|
||||
Ext2LoadDisks();
|
||||
|
||||
BOOL Ext2ProcessExt2Volumes();
|
||||
|
||||
VOID
|
||||
Ext2CleanupDisks();
|
||||
|
||||
BOOL
|
||||
Ext2LoadCdroms();
|
||||
|
||||
VOID
|
||||
Ext2LoadCdromDrvLetters();
|
||||
|
||||
VOID
|
||||
Ext2CleanupCdroms();
|
||||
|
||||
BOOL
|
||||
Ext2LoadDiskPartitions(PEXT2_DISK Disk);
|
||||
|
||||
VOID
|
||||
Ext2LoadAllDiskPartitions();
|
||||
|
||||
VOID
|
||||
Ext2MountingVolumes();
|
||||
|
||||
BOOL
|
||||
Ext2LoadVolumes();
|
||||
|
||||
VOID
|
||||
Ext2LoadAllVolumeDrvLetters();
|
||||
|
||||
BOOL
|
||||
Ext2LoadRemovableVolumes();
|
||||
|
||||
CString
|
||||
Ext2QueryVolumeLetterStrings(
|
||||
ULONGLONG letters,
|
||||
PEXT2_LETTER * first
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2RefreshVLVI(
|
||||
CListCtrl *List,
|
||||
PEXT2_VOLUME chain,
|
||||
int nItem
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2InsertVolume(
|
||||
CListCtrl *List,
|
||||
PEXT2_VOLUME chain
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2RefreshVLCD(
|
||||
CListCtrl *List,
|
||||
PEXT2_CDROM Cdrom,
|
||||
int nItem
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2InsertCdromAsVolume(
|
||||
CListCtrl *List,
|
||||
PEXT2_CDROM Cdrom
|
||||
);
|
||||
|
||||
|
||||
VOID
|
||||
Ext2RefreshVolumeList(CListCtrl *List);
|
||||
|
||||
VOID
|
||||
Ext2RefreshDVPT(
|
||||
CListCtrl* List,
|
||||
PEXT2_PARTITION Part,
|
||||
int nItem
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2InsertPartition(
|
||||
CListCtrl* List,
|
||||
PEXT2_DISK Disk,
|
||||
PEXT2_PARTITION Part
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2InsertDisk(
|
||||
CListCtrl *List,
|
||||
PEXT2_DISK Disk
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2RefreshDVCM(
|
||||
CListCtrl *List,
|
||||
PEXT2_CDROM Cdrom,
|
||||
int nItem
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2InsertCdromAsDisk(
|
||||
CListCtrl *List,
|
||||
PEXT2_CDROM Cdrom
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2RefreshDiskList(CListCtrl *List);
|
||||
|
||||
VOID
|
||||
Ext2CleanupVolumes();
|
||||
|
||||
VOID
|
||||
Ext2LoadDrvLetter(PEXT2_LETTER drvLetter, CHAR cLetter);
|
||||
|
||||
VOID
|
||||
Ext2LoadDrvLetters();
|
||||
|
||||
VOID
|
||||
Ext2CleanDrvLetter(PEXT2_LETTER drvLetter);
|
||||
|
||||
VOID
|
||||
Ext2CleanupDrvLetters();
|
||||
|
||||
BOOL
|
||||
Ext2RemoveDrvLetter(
|
||||
PEXT2_LETTER drvLetter
|
||||
);
|
||||
BOOL
|
||||
Ext2RemoveDriveLetter(CHAR DrvLetter);
|
||||
|
||||
CHAR
|
||||
Ext2QueryRegistryMountPoint (
|
||||
CHAR * devName
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2SetRegistryMountPoint (
|
||||
CHAR * dosPath,
|
||||
CHAR * devName,
|
||||
BOOL bSet
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2InsertMountPoint(
|
||||
CHAR * volume,
|
||||
UCHAR drvChar,
|
||||
BOOL bGlobal
|
||||
);
|
||||
|
||||
VOID
|
||||
Ext2UpdateDrvLetter(
|
||||
PEXT2_LETTER drvLetter,
|
||||
PCHAR devPath
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2AssignDrvLetter(
|
||||
PEXT2_LETTER drvLetter,
|
||||
PCHAR devPath,
|
||||
BOOL bPermanent
|
||||
);
|
||||
|
||||
BOOL Ext2IsDrvLetterAvailable(CHAR drive);
|
||||
CHAR Ext2MountVolume(CHAR *voldev);
|
||||
|
||||
CHAR Ext2MountVolumeAs(CHAR *voldev, CHAR letter);
|
||||
|
||||
VOID
|
||||
Ext2RemoveMountPoint(
|
||||
PEXT2_LETTER drvLetter,
|
||||
BOOL bPermanent
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2SymLinkRemoval(CHAR drvLetter);
|
||||
|
||||
BOOL
|
||||
Ext2SetVolumeMountPoint (
|
||||
CHAR * dosPath,
|
||||
CHAR * devName
|
||||
);
|
||||
|
||||
UCHAR
|
||||
Ext2QueryMountPoint(
|
||||
CHAR * volume
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2RefreshVolumePoint(
|
||||
CHAR * volume,
|
||||
UCHAR drvChar
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2NotifyVolumePoint(
|
||||
PEXT2_VOLUME volume,
|
||||
UCHAR drvChar
|
||||
);
|
||||
|
||||
BOOL
|
||||
Ext2VolumeArrivalNotify(PCHAR VolumePath);
|
||||
|
||||
BOOL
|
||||
Ext2SetAppAutorun(BOOL bInstall);
|
||||
|
||||
BOOL Ext2RunMgrForCurrentUser();
|
||||
|
||||
int
|
||||
Ext2SetManagerAsService(BOOL bInstall);
|
||||
|
||||
extern BOOL g_bAutoRemoveDeadLetters;
|
||||
|
||||
VOID
|
||||
Ext2AddLetterMask(ULONGLONG LetterMask);
|
||||
|
||||
VOID
|
||||
Ext2AutoRemoveDeadLetters();
|
||||
|
||||
BOOL
|
||||
Ext2RemoveDosSymLink(CHAR drvChar);
|
||||
|
||||
BOOL Ext2DismountVolume(CHAR *voldev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
BOOL WINAPI
|
||||
WTSQueryUserToken(
|
||||
ULONG SessionId,
|
||||
PHANDLE phToken
|
||||
);
|
||||
|
||||
BOOL WINAPI ConvertStringSidToSidA(
|
||||
LPCTSTR StringSid,
|
||||
PSID* Sid
|
||||
);
|
||||
|
||||
WINUSERAPI
|
||||
HWND
|
||||
WINAPI
|
||||
GetShellWindow(
|
||||
VOID);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _ENUM_DISK_INCLUDE_
|
||||
Reference in New Issue
Block a user