windows-nt/Source/XPSP1/NT/base/published/clusdisk.w
2020-09-26 16:20:57 +08:00

76 lines
3.5 KiB
OpenEdge ABL

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
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,
DiskStalled,
DiskOfflinePending,
DiskStateMaximum = DiskOfflinePending
} 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)
#define IOCTL_DISK_CLUSTER_GET_DRIVE_LETTER CTL_CODE(IOCTL_SCSI_BASE, 0x515, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_ARBITRATION_ESCAPE CTL_CODE(IOCTL_SCSI_BASE, 0x516, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_CLUSTER_NT4_CAPABLE CTL_CODE(IOCTL_SCSI_BASE, 0x517, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_CHANGE_NOTIFY CTL_CODE(IOCTL_SCSI_BASE, 0x518, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_HOLD_IO CTL_CODE(IOCTL_SCSI_BASE, 0x519, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_RESUME_IO CTL_CODE(IOCTL_SCSI_BASE, 0x520, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_WAIT_FOR_CLEANUP CTL_CODE(IOCTL_SCSI_BASE, 0x521, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_VOLUME_TEST CTL_CODE(IOCTL_SCSI_BASE, 0x522, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CLUSTER_ATTACH_LIST CTL_CODE(IOCTL_SCSI_BASE, 0x523, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_DISK_CLUSTER_DETACH_LIST CTL_CODE(IOCTL_SCSI_BASE, 0x524, METHOD_BUFFERED, FILE_WRITE_ACCESS)
typedef struct _CLUSDISK_GET_DRIVE_LETTER {
ULONG Signature;
ULONG PartitionNumber;
} CLUSDISK_GET_DRIVE_LETTER, *PCLUSDISK_GET_DRIVE_LETTER;
#endif // _CLUSTER_DISK_