Files
2020-03-09 11:51:53 +09:00

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_