#define RTINTERRUPT_TYPE 40000 /* 32768-65535 are reserved for customers */

// The IOCTL function codes from 0x800 to 0xFFF are for customer use.

#define IOCTL_GET_SETTINGS \
    CTL_CODE(RTINTERRUPT_TYPE, 0x904, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_START \
    CTL_CODE(RTINTERRUPT_TYPE, 0x905, METHOD_BUFFERED, FILE_ANY_ACCESS)

#pragma pack (1)

typedef struct _RTsettings {
	UCHAR useOldInterrupt;
	UCHAR RTC_Vector;
	UCHAR PrimaryHD_Vector; // set these to 0 to disable the IDE controller disabling
	UCHAR SecondaryHD_Vector;
	UCHAR OldInterrupt_Vector; // the vector to copy the current RTC_Vector into, so that we can still trigger it
	UCHAR LowPriority; // normally 1
	UCHAR HighPriority; // normally 31
} RTsettings, *PRTsettings;
