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.
135 lines
3.5 KiB
135 lines
3.5 KiB
/*++
|
|
|
|
Copyright (c) 1996-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
fttypes.h
|
|
|
|
Abstract:
|
|
|
|
This header file defines types and structures for the FT API
|
|
and the IOCTLs used to implement the FT API.
|
|
|
|
Author:
|
|
|
|
Norbert Kusters 13-July-1996
|
|
|
|
Notes:
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#if !defined( _FT_TYPES_DEFINITION_ )
|
|
|
|
#define _FT_TYPES_DEFINITION_ 1
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
//
|
|
// This enumerated type defines all of the different types of logical
|
|
// disks that can be constructed with this API.
|
|
//
|
|
|
|
typedef enum _FT_LOGICAL_DISK_TYPE {
|
|
FtPartition,
|
|
FtVolumeSet,
|
|
FtStripeSet,
|
|
FtMirrorSet,
|
|
FtStripeSetWithParity,
|
|
FtRedistribution
|
|
} FT_LOGICAL_DISK_TYPE, *PFT_LOGICAL_DISK_TYPE;
|
|
|
|
//
|
|
// This enumerated type defines all of the possible states that members
|
|
// of an FT set can have.
|
|
//
|
|
|
|
typedef enum _FT_MEMBER_STATE {
|
|
FtMemberHealthy,
|
|
FtMemberRegenerating,
|
|
FtMemberOrphaned
|
|
} FT_MEMBER_STATE, *PFT_MEMBER_STATE;
|
|
|
|
//
|
|
// The logical disk id type is used to uniquely identify a logical disk. It
|
|
// needs to be unique in the universe.
|
|
//
|
|
|
|
typedef LONGLONG FT_LOGICAL_DISK_ID, *PFT_LOGICAL_DISK_ID;
|
|
|
|
//
|
|
// This is the structure needed for the configuration information of
|
|
// a logical disk type of 'FtPartition'.
|
|
//
|
|
|
|
typedef struct _FT_PARTITION_CONFIGURATION_INFORMATION {
|
|
ULONG Signature;
|
|
ULONG DiskNumber;
|
|
LONGLONG ByteOffset;
|
|
} FT_PARTITION_CONFIGURATION_INFORMATION, *PFT_PARTITION_CONFIGURATION_INFORMATION;
|
|
|
|
//
|
|
// This is the structure needed for the configuration information of
|
|
// a logical disk type of 'FtStripeSet'.
|
|
//
|
|
|
|
typedef struct _FT_STRIPE_SET_CONFIGURATION_INFORMATION {
|
|
ULONG StripeSize;
|
|
} FT_STRIPE_SET_CONFIGURATION_INFORMATION, *PFT_STRIPE_SET_CONFIGURATION_INFORMATION;
|
|
|
|
//
|
|
// This is the structure needed for the configuration information of
|
|
// a logical disk type of 'FtMirrorSet'.
|
|
//
|
|
|
|
typedef struct _FT_MIRROR_SET_CONFIGURATION_INFORMATION {
|
|
LONGLONG MemberSize;
|
|
} FT_MIRROR_SET_CONFIGURATION_INFORMATION, *PFT_MIRROR_SET_CONFIGURATION_INFORMATION;
|
|
|
|
//
|
|
// This is the structure needed for the configuration information of
|
|
// a logical disk type of 'FtStripeSetWithParity'.
|
|
//
|
|
|
|
typedef struct _FT_STRIPE_SET_WITH_PARITY_CONFIGURATION_INFORMATION {
|
|
LONGLONG MemberSize;
|
|
ULONG StripeSize;
|
|
} FT_STRIPE_SET_WITH_PARITY_CONFIGURATION_INFORMATION, *PFT_STRIPE_SET_WITH_PARITY_CONFIGURATION_INFORMATION;
|
|
|
|
//
|
|
// This is the structure needed for the configuration information of
|
|
// a logical disk type of 'FtRedistribution'.
|
|
//
|
|
|
|
typedef struct _FT_REDISTRIBUTION_CONFIGURATION_INFORMATION {
|
|
ULONG StripeSize;
|
|
USHORT FirstMemberWidth;
|
|
USHORT SecondMemberWidth;
|
|
} FT_REDISTRIBUTION_CONFIGURATION_INFORMATION, *PFT_REDISTRIBUTION_CONFIGURATION_INFORMATION;
|
|
|
|
//
|
|
// This is the structure needed for the state of a logical disk type of
|
|
// 'FtStripeSetWithParity' or 'FtMirrorSet'.
|
|
//
|
|
|
|
typedef struct _FT_MIRROR_AND_SWP_STATE_INFORMATION {
|
|
BOOLEAN IsDirty;
|
|
BOOLEAN IsInitializing;
|
|
USHORT UnhealthyMemberNumber;
|
|
FT_MEMBER_STATE UnhealthyMemberState;
|
|
} FT_MIRROR_AND_SWP_STATE_INFORMATION, *PFT_MIRROR_AND_SWP_STATE_INFORMATION;
|
|
|
|
//
|
|
// This is the structure needed for the state of a logical disk type of
|
|
// 'FtRedistribution'.
|
|
//
|
|
|
|
typedef struct _FT_REDISTRIBUTION_STATE_INFORMATION {
|
|
LONGLONG BytesRedistributed;
|
|
} FT_REDISTRIBUTION_STATE_INFORMATION, *PFT_REDISTRIBUTION_STATE_INFORMATION;
|
|
|
|
#endif
|