mirror of https://github.com/tongzx/nt5src
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.
92 lines
2.9 KiB
92 lines
2.9 KiB
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
FTMan
|
|
|
|
File Name:
|
|
|
|
Global.h
|
|
|
|
Abstract:
|
|
|
|
Definitions of useful global functions
|
|
|
|
Author:
|
|
|
|
Cristian Teodorescu October 29, 1998
|
|
|
|
Notes:
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_GLOBAL_H_INCLUDED_)
|
|
#define AFX_GLOBAL_H_INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include <fttypes.h>
|
|
#include <winioctl.h>
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Display stuff
|
|
|
|
// Display the last system error message prefixed ( or not ) with another string taken from
|
|
// our resources explaining the context of the failure
|
|
BOOL DisplaySystemErrorMessage( UINT unContextMsgID=0 );
|
|
|
|
// Format the size of a volume in a "readable" way
|
|
// ( in GB, MB, KB depending on the size )
|
|
void FormatVolumeSize( CString& strSize, LONGLONG llSize );
|
|
|
|
// Display a message in the first pane of the main frame status bar
|
|
BOOL DisplayStatusBarMessage( LPCTSTR lpszMsg );
|
|
|
|
// Displays a message in the first pane of the main frame status bar
|
|
BOOL DisplayStatusBarMessage( UINT unMsgID );
|
|
|
|
// Copy a Unicode character array into a CString
|
|
void CopyW2Str( CString& strDest, LPWSTR strSource, ULONG ulLength );
|
|
|
|
// Copy a CString content into a Unicode character array
|
|
void CopyStr2W( LPWSTR strDest, CString& strSource );
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Volume stuff
|
|
|
|
// Open a volume given its name
|
|
// The name must be like this: "\\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\"
|
|
HANDLE OpenVolume( const CString& strVolumeName );
|
|
|
|
// Query the drive letter and the name of the volume given its NT Name
|
|
// The name will be like this: "\\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
|
|
BOOL QueryDriveLetterAndVolumeName( CString& strNTName, TCHAR& cDriveLetter, CString& strVolumeName );
|
|
|
|
// Query the mount manager for all mount paths of the given volumes
|
|
// Each found mount path is added to the corresponding volume in array arrItems ( if any )
|
|
void QueryMountList( CObArray& arrVolumesData );
|
|
|
|
// Scans an array of CLVTreeItemData and converts all physical partitions to FT partitions.
|
|
// Then return the logical volume ID's of all items in the array
|
|
BOOL ConvertPartitionsToFT( CObArray& arrVolumeData, FT_LOGICAL_DISK_ID* arrVolID );
|
|
|
|
// Scans an array of CLVTreeItemData and deconverts all physical partitions from FT partitions.
|
|
BOOL DeconvertPartitionsFromFT( CObArray& arrVolumeData, FT_LOGICAL_DISK_ID* arrVolID, int nItems = -1 );
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// System stuff
|
|
|
|
// Checks whether the current user is a member of the Administrators' group
|
|
BOOL CheckAdministratorsMembership( BOOL& bIsAdministrator );
|
|
|
|
|
|
#endif // !defined(AFX_GLOBAL_H_INCLUDED_)
|