windows-nt/Source/XPSP1/NT/drivers/ftapi/ftman/frspace.h
2020-09-26 16:20:57 +08:00

94 lines
2.4 KiB
C++

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
FTMan
File Name:
FrSpace.h
Abstract:
The definition of class CFreeSpaceData. The class that stores all information related
to a free space on a disk. A free space is a contiguous block on a physical disk which
is not inside a partition
Author:
Cristian Teodorescu October 23, 1998
Notes:
Revision History:
--*/
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_FRSPACE_H_INCLUDED_)
#define AFX_FRSPACE_H_INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Item.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
// Class CFreeSpaceData
class CFreeSpaceData : public CItemData
{
public:
// Constructor providing the partition information
CFreeSpaceData(
DWORD dwDiskNumber,
DWORD dwSignature,
LONGLONG llOffset,
LONGLONG llSize,
FREE_SPACE_TYPE wFreeSpaceType,
LONGLONG llCylinderSize,
DWORD dwPartitionCountOnLevel,
DWORD dwExtendedPartitionCountOnLevel,
CItemData* pParentData = NULL);
virtual ~CFreeSpaceData() {};
// Operations
public:
virtual BOOL ReadItemInfo( CString& strErrors );
virtual BOOL ReadMembers( CObArray& arrMembersData, CString& strErrors );
virtual int ComputeImageIndex() const;
virtual BOOL operator==(CItemData& rData) const;
// Provide item properties
virtual void GetDisplayName( CString& strDisplay ) const;
virtual void GetDisplayType( CString& strDisplay ) const ;
virtual BOOL GetSize( LONGLONG& llSize ) const;
virtual BOOL GetDiskNumber( ULONG& ulDiskNumber ) const;
virtual BOOL GetOffset( LONGLONG& llOffset) const;
//Data members
public:
DWORD m_dwDiskNumber; // Disk number
DWORD m_dwSignature; // Disk signature
LONGLONG m_llOffset; // Free space starting offset
LONGLONG m_llSize; // Free space size
FREE_SPACE_TYPE m_wFreeSpaceType; // Free space type
DWORD m_dwFreeSpaceNumber; // Free space number ( internal value )
LONGLONG m_llCylinderSize; // Disk cylinder size
DWORD m_dwPartitionCountOnLevel; // Number of non-container partitions on the same level with the free space
DWORD m_dwExtendedPartitionCountOnLevel; // Number of container partitions on the same level with the free space
protected:
virtual BOOL RetrieveDisksSet();
};
#endif // !defined(AFX_FRSPACE_H_INCLUDED_)