Source code of Windows XP (NT5)
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.

75 lines
1.5 KiB

  1. /*++
  2. Copyright (c) 1995-1996 Microsoft Corporation
  3. Module Name:
  4. diskarbp.h
  5. Abstract:
  6. This module defines the structures that are used
  7. to perform disk arbitration in clusdisk\ driver
  8. and resdll\disks disk resource.
  9. Authors:
  10. Gor Nishanov (t-gorn) 18-June-1998
  11. Revision History:
  12. --*/
  13. #ifndef _DISK_ARBITRATE_P_
  14. #define _DISK_ARBITRATE_P_
  15. #ifndef min
  16. #define min( a, b ) ((a) <= (b) ? (a) : (b))
  17. #endif
  18. typedef struct _START_RESERVE_DATA {
  19. ULONG DiskSignature;
  20. ULONG Version;
  21. ULONG ArbitrationSector;
  22. ULONG SectorSize;
  23. USHORT NodeSignatureSize;
  24. UCHAR NodeSignature[32]; // MAX_COMPUTERNAME_LENGTH + 1
  25. }
  26. START_RESERVE_DATA, *PSTART_RESERVE_DATA;
  27. #define START_RESERVE_DATA_V1_SIG (sizeof(START_RESERVE_DATA))
  28. typedef struct _ARBITRATION_ID {
  29. LARGE_INTEGER SystemTime;
  30. LARGE_INTEGER SeqNo;
  31. UCHAR NodeSignature[32];
  32. } ARBITRATION_ID, *PARBITRATION_ID;
  33. #define RESERVE_TIMER 3 // 3 seconds to perform reserves
  34. //
  35. // IOCTL_ARBITRATION_ESCAPE subcodes
  36. //
  37. typedef enum {
  38. AE_TEST,
  39. AE_READ,
  40. AE_WRITE,
  41. AE_POKE,
  42. AE_RESET,
  43. AE_RESERVE,
  44. AE_RELEASE,
  45. AE_SECTORSIZE
  46. } ARBITRATION_ESCAPE_SUBCODES;
  47. typedef struct _ARBITRATION_READ_WRITE_PARAMS {
  48. ULONG Operation;
  49. ULONG SectorSize;
  50. ULONG SectorNo;
  51. PVOID Buffer;
  52. ULONG Signature;
  53. } ARBITRATION_READ_WRITE_PARAMS, * PARBITRATION_READ_WRITE_PARAMS;
  54. #define ARBITRATION_READ_WRITE_PARAMS_SIZE sizeof(ARBITRATION_READ_WRITE_PARAMS)
  55. #endif // _DISK_ARBITRATE_P_