|
|
#ifndef __VMMID_H__
#define __VMMID_H__
// VMM Items we are interested in, the whole table is just to big to define
#define __Hook_Device_Service 0x00010090
#define __Unhook_Device_Service 0x0001011C
// Define the VKD service table (not so big, whole thing)
#define VKD_DEVICE_ID 0x0000D
enum VKD_SERVICES { VKD_dummy = (VKD_DEVICE_ID << 16) - 1, __VKD_Get_Version, __VKD_Define_Hot_Key, __VKD_Remove_Hot_Key, __VKD_Local_Enable_Hot_Key, __VKD_Local_Disable_Hot_Key, __VKD_Reflect_Hot_Key, __VKD_Cancel_Hot_Key_State, __VKD_Force_Keys, __VKD_Get_Kbd_Owner, __VKD_Define_Paste_Mode, __VKD_Start_Paste, __VKD_Cancel_Paste, __VKD_Get_Msg_Key, __VKD_Peek_Msg_Key, __VKD_Flush_Msg_Key_Queue, //
// The following services are new for Windows 4.0.
//
__VKD_Enable_Keyboard, __VKD_Disable_Keyboard, __VKD_Get_Shift_State, __VKD_Filter_Keyboard_Input, __VKD_Put_Byte, __VKD_Set_Shift_State, //
// New for Windows 98 (VKD version 0300h)
//
__VKD_Send_Data, __VKD_Set_LEDs, __VKD_Set_Key_Rate, //VKD_Service VKD_Get_Key_Rate
Num_VKD_Services };
#define VxDCall(service) \
__asm _emit 0xcd \ __asm _emit 0x20 \ __asm _emit ((service) & 0xff) \ __asm _emit (((service) >> 8) & 0xff) \ __asm _emit (((service) >> 16) & 0xff) \ __asm _emit (((service) >> 24) & 0xff)
#endif __VMMID_H__
|