// Private RSSRV-to-DWM Session 0 routing protocol. Capability possession, not path publication, grants access. #pragma once #include #include #include #define NTL_SESSION_DWM_PROTOCOL_VERSION 1u #define NTL_SESSION_DWM_FLAG_NONE 0x00000000u #define NTL_SESSION_DWM_OP_SET_KEYBOARD_FOCUS 1u #define NTL_SESSION_DWM_OP_SET_POINTER_FOCUS 2u #define NTL_SESSION_DWM_OP_SET_POINTER_CAPTURE 3u #define NTL_SESSION_DWM_EVENT_OBSERVE_KEY 1u #define NTL_SESSION_DWM_EVENT_OBSERVE_MOUSE 2u #define NTL_SESSION_DWM_EVENT_DELIVER_KEY 3u #define NTL_SESSION_DWM_EVENT_DELIVER_MOUSE 4u typedef struct NTL_SESSION_DWM_REQUEST { uint32_t Size; uint32_t Version; uint32_t Operation; uint32_t Flags; uint32_t Enabled; uint32_t Reserved[3]; } NTL_SESSION_DWM_REQUEST; typedef struct NTL_SESSION_DWM_REPLY { uint32_t Size; uint32_t Version; uint32_t Operation; uint32_t Flags; KSTATUS Status; uint32_t Reserved[3]; } NTL_SESSION_DWM_REPLY; typedef struct NTL_SESSION_DWM_EVENT { uint32_t Size; uint32_t Version; uint32_t Type; uint32_t Flags; int32_t PointerX; int32_t PointerY; INPUT_KEY_RECORD Key; INPUT_MOUSE_EVENT Mouse; } NTL_SESSION_DWM_EVENT;