Leaked source code of windows server 2003
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

/*++
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