/*++

Copyright (c) 1995-1996  Microsoft Corporation

Module Name:

    clusapi.h

Abstract:

    This module defines the common management and application interface to
    the Windows Clusters services.

Authors:

    Rod Gamache     13-Feb-1996

Revision History:

--*/

#ifndef _CLUSTER_DISK_
#define _CLUSTER_DISK_


//
// Disk States.
//

typedef enum _DiskState {
    DiskOffline,
    DiskOnline,
    DiskFailed,
    DiskStateMaximum = DiskFailed
} DiskState;


//
// Define IOCTLs specific to ClusDisk Filter Driver.
//

#define IOCTL_DISK_CLUSTER_SET_STATE    CTL_CODE(IOCTL_SCSI_BASE, 0x500, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_RESET_BUS    CTL_CODE(IOCTL_SCSI_BASE, 0x501, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_READ_CAPACITY CTL_CODE(IOCTL_SCSI_BASE, 0x502, METHOD_BUFFERED, FILE_READ_ACCESS)

#define IOCTL_DISK_CLUSTER_RESERVE      CTL_CODE(IOCTL_SCSI_BASE, 0x503, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_RELEASE      CTL_CODE(IOCTL_SCSI_BASE, 0x504, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_ATTACH       CTL_CODE(IOCTL_SCSI_BASE, 0x505, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_DETACH       CTL_CODE(IOCTL_SCSI_BASE, 0x506, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_SCSI_BASE, 0x507, METHOD_BUFFERED, FILE_READ_ACCESS)

#define IOCTL_DISK_CLUSTER_START_RESERVE CTL_CODE(IOCTL_SCSI_BASE, 0x508, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_STOP_RESERVE CTL_CODE(IOCTL_SCSI_BASE, 0x509, METHOD_BUFFERED, FILE_WRITE_ACCESS)

#define IOCTL_DISK_CLUSTER_ALIVE_CHECK CTL_CODE(IOCTL_SCSI_BASE, 0x510, METHOD_BUFFERED, FILE_READ_ACCESS)

#define IOCTL_DISK_CLUSTER_ROOT         CTL_CODE(IOCTL_SCSI_BASE, 0x511, METHOD_BUFFERED, FILE_READ_ACCESS)

#define IOCTL_DISK_CLUSTER_ACTIVE       CTL_CODE(IOCTL_SCSI_BASE, 0x512, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_DISK_CLUSTER_TEST         CTL_CODE(IOCTL_SCSI_BASE, 0x513, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_DISK_CLUSTER_NOT_CLUSTER_CAPABLE CTL_CODE(IOCTL_SCSI_BASE, 0x514, METHOD_BUFFERED, FILE_ANY_ACCESS)



#endif // _CLUSTER_DISK_
