83 lines
2.5 KiB
C
83 lines
2.5 KiB
C
#include <initguid.h>
|
|
|
|
#ifndef _COMMON_H_
|
|
#define _COMMON_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define MODE_BYPASS (0)
|
|
#define MODE_HOOK (1)
|
|
#define MODE_BLOCK (2)
|
|
|
|
// Server
|
|
DEFINE_GUID(GUID_SERVERIODEVICE_KBD,
|
|
0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x81);
|
|
|
|
DEFINE_GUID(GUID_SERVERIODEVICE_MOUSE,
|
|
0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x82);
|
|
|
|
// Client
|
|
DEFINE_GUID(GUID_VUSBBUS,
|
|
0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x78);
|
|
|
|
#define MAX_INPUT_BUFFERING_COUNT (100)
|
|
|
|
#define TYPE_KEYBOARD (0)
|
|
#define TYPE_MOUSE (1)
|
|
|
|
typedef struct _KEYBOARD_HOOK_INPUT_DATA {
|
|
USHORT UnitId;
|
|
USHORT MakeCode;
|
|
USHORT Flags;
|
|
USHORT Reserved;
|
|
ULONG ExtraInformation;
|
|
} KEYBOARD_HOOK_INPUT_DATA, *PKEYBOARD_HOOK_INPUT_DATA;
|
|
|
|
typedef struct _MOUSE_HOOK_INPUT_DATA {
|
|
USHORT UnitId;
|
|
USHORT Flags;
|
|
union {
|
|
ULONG Buttons;
|
|
struct {
|
|
USHORT ButtonFlags;
|
|
USHORT ButtonData;
|
|
};
|
|
};
|
|
ULONG RawButtons;
|
|
LONG LastX;
|
|
LONG LastY;
|
|
ULONG ExtraInformation;
|
|
} MOUSE_HOOK_INPUT_DATA, *PMOUSE_HOOK_INPUT_DATA;
|
|
|
|
#define _IOCTL_KEYBOARD_QUERY_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
#define _IOCTL_KEYBOARD_SET_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
#define LED_SCROLLLOCK (1)
|
|
#define LED_NUMLOCK (2)
|
|
#define LED_CAPSLOCK (4)
|
|
typedef struct _KEYBOARD_HOOK_INDICATOR_PARAMETERS {
|
|
USHORT UnitId;
|
|
USHORT LedFlags;
|
|
} KEYBOARD_HOOK_INDICATOR_PARAMETERS, *PKEYBOARD_HOOK_INDICATOR_PARAMETERS;
|
|
|
|
#define _IOCTL_SERVERIODEVICE_SET_BLOCK CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0800, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
#define _IOCTL_SERVERIODEVICE_CLR_BLOCK CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0801, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
// Client
|
|
#define IOCTL_BUSDRIVER_ADDDEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0800, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
#define IOCTL_BUSDRIVER_REMOVEDEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0801, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
#define IOCTL_BUSDRIVER_SENDKEYBOARD CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0810, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
#define IOCTL_BUSDRIVER_SENDMOUSE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0811, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
#define IOCTL_BUSDRIVER_GETKEYBOARD_LED CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0812, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
#define IOCTL_BUSDRIVER_SENDKEYBOARD_LED_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0813, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _COMMON_H_
|