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