
//
// Define the various device type values.  Note that values used by Microsoft
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//

#define FILE_DEVICE_RTIODRIVERcommon  0x00008000

//Use this for ctrlcodes only known in this driver.
#define FILE_DEVICE_RTIODRIVERthis  0x00008010

#define IOCTL_INDEX  0x800

#define CTL(i)	CTL_CODE(FILE_DEVICE_RTIODRIVER, IOCTL_INDEX + (i), METHOD_BUFFERED, FILE_ANY_ACCESS)
#define CTLcommon(i)	CTL_CODE(FILE_DEVICE_RTIODRIVERcommon, IOCTL_INDEX + (i), METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_DIRECT_COMMAND CTLcommon(3)
//a directcommand may be sent in future, for any case, by an application like RTService, to the driver.
//these commands have to be kept unique for 3S-products.

//
// Macro definition for defining IOCTL and FSCTL function control codes.  Note
// that function codes 0-2047 are reserved for Microsoft Corporation, and
// 2048-4095 are reserved for customers.
//

#define RTS_CUSTOM_SERVICES 255

#define SUBCMD_GETSHMPOINTER 100
#define SUBCMD_RELEASESHMPOINTER 101

#define SZREGKEY_ROOT_MACHINE		"\\Registry\\Machine"
#define SZREGKEY_DRIVER             SZREGKEY_ROOT_MACHINE "\\SYSTEM\\CurrentControlSet\\Services\\RTIOdrvLiebherr"             
#define SZREGKEY_DRIVERPARAMS       SZREGKEY_DRIVER "\\Params"             
 
typedef struct tagAdditionalParameter
{
	unsigned long ulPar1;
	unsigned long ulPar2;
	unsigned long ulPar3;
	unsigned long ulPar4;
	unsigned long ulPar5;
}AdditionalParameter;

typedef struct tagDirectCommand
{
	unsigned char Cmd;
	unsigned char SubCmd;
	unsigned long ulRetInfo;
	AdditionalParameter adpar;
}DirectCommand;
            