76 lines
1.5 KiB
C
76 lines
1.5 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1995-1996 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
diskarbp.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module defines the structures that are used
|
||
|
to perform disk arbitration in clusdisk\ driver
|
||
|
and resdll\disks disk resource.
|
||
|
|
||
|
Authors:
|
||
|
|
||
|
Gor Nishanov (t-gorn) 18-June-1998
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _DISK_ARBITRATE_P_
|
||
|
#define _DISK_ARBITRATE_P_
|
||
|
|
||
|
#ifndef min
|
||
|
#define min( a, b ) ((a) <= (b) ? (a) : (b))
|
||
|
#endif
|
||
|
|
||
|
typedef struct _START_RESERVE_DATA {
|
||
|
ULONG DiskSignature;
|
||
|
ULONG Version;
|
||
|
ULONG ArbitrationSector;
|
||
|
ULONG SectorSize;
|
||
|
USHORT NodeSignatureSize;
|
||
|
UCHAR NodeSignature[32]; // MAX_COMPUTERNAME_LENGTH + 1
|
||
|
}
|
||
|
START_RESERVE_DATA, *PSTART_RESERVE_DATA;
|
||
|
|
||
|
#define START_RESERVE_DATA_V1_SIG (sizeof(START_RESERVE_DATA))
|
||
|
|
||
|
typedef struct _ARBITRATION_ID {
|
||
|
LARGE_INTEGER SystemTime;
|
||
|
LARGE_INTEGER SeqNo;
|
||
|
UCHAR NodeSignature[32];
|
||
|
} ARBITRATION_ID, *PARBITRATION_ID;
|
||
|
|
||
|
#define RESERVE_TIMER 3 // 3 seconds to perform reserves
|
||
|
|
||
|
//
|
||
|
// IOCTL_ARBITRATION_ESCAPE subcodes
|
||
|
//
|
||
|
|
||
|
typedef enum {
|
||
|
AE_TEST,
|
||
|
AE_READ,
|
||
|
AE_WRITE,
|
||
|
AE_POKE,
|
||
|
AE_RESET,
|
||
|
AE_RESERVE,
|
||
|
AE_RELEASE,
|
||
|
AE_SECTORSIZE
|
||
|
} ARBITRATION_ESCAPE_SUBCODES;
|
||
|
|
||
|
typedef struct _ARBITRATION_READ_WRITE_PARAMS {
|
||
|
ULONG Operation;
|
||
|
ULONG SectorSize;
|
||
|
ULONG SectorNo;
|
||
|
PVOID Buffer;
|
||
|
ULONG Signature;
|
||
|
} ARBITRATION_READ_WRITE_PARAMS, * PARBITRATION_READ_WRITE_PARAMS;
|
||
|
|
||
|
#define ARBITRATION_READ_WRITE_PARAMS_SIZE sizeof(ARBITRATION_READ_WRITE_PARAMS)
|
||
|
|
||
|
#endif // _DISK_ARBITRATE_P_
|