server: Introduce IOCTL_CONDRV_CTRL_EVENT ioctl.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
7d3503d83e
commit
f9c8993259
|
@ -36,6 +36,7 @@
|
||||||
#define IOCTL_CONDRV_SET_INPUT_INFO CTL_CODE(FILE_DEVICE_CONSOLE, 14, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
|
#define IOCTL_CONDRV_SET_INPUT_INFO CTL_CODE(FILE_DEVICE_CONSOLE, 14, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
|
||||||
#define IOCTL_CONDRV_GET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 15, METHOD_BUFFERED, FILE_READ_PROPERTIES)
|
#define IOCTL_CONDRV_GET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 15, METHOD_BUFFERED, FILE_READ_PROPERTIES)
|
||||||
#define IOCTL_CONDRV_SET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 16, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
|
#define IOCTL_CONDRV_SET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 16, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
|
||||||
|
#define IOCTL_CONDRV_CTRL_EVENT CTL_CODE(FILE_DEVICE_CONSOLE, 17, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
|
||||||
|
|
||||||
/* console output ioctls */
|
/* console output ioctls */
|
||||||
#define IOCTL_CONDRV_READ_OUTPUT CTL_CODE(FILE_DEVICE_CONSOLE, 30, METHOD_BUFFERED, FILE_READ_DATA)
|
#define IOCTL_CONDRV_READ_OUTPUT CTL_CODE(FILE_DEVICE_CONSOLE, 30, METHOD_BUFFERED, FILE_READ_DATA)
|
||||||
|
@ -226,6 +227,13 @@ enum condrv_renderer_event_type
|
||||||
CONSOLE_RENDERER_EXIT_EVENT,
|
CONSOLE_RENDERER_EXIT_EVENT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* IOCTL_CONDRV_CTRL_EVENT params */
|
||||||
|
struct condrv_ctrl_event
|
||||||
|
{
|
||||||
|
int event; /* the event to send */
|
||||||
|
unsigned int group_id; /* the group to send the event to */
|
||||||
|
};
|
||||||
|
|
||||||
/* Wine specific values for console inheritance (params->ConsoleHandle) */
|
/* Wine specific values for console inheritance (params->ConsoleHandle) */
|
||||||
#define CONSOLE_HANDLE_ALLOC ((HANDLE)1)
|
#define CONSOLE_HANDLE_ALLOC ((HANDLE)1)
|
||||||
|
|
||||||
|
|
|
@ -1844,6 +1844,25 @@ static int console_input_ioctl( struct fd *fd, ioctl_code_t code, struct async *
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case IOCTL_CONDRV_CTRL_EVENT:
|
||||||
|
{
|
||||||
|
const struct condrv_ctrl_event *event = get_req_data();
|
||||||
|
process_id_t group;
|
||||||
|
if (get_req_data_size() != sizeof(*event))
|
||||||
|
{
|
||||||
|
set_error( STATUS_INVALID_PARAMETER );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
group = event->group_id ? event->group_id : current->process->group_id;
|
||||||
|
if (!group)
|
||||||
|
{
|
||||||
|
set_error( STATUS_INVALID_PARAMETER );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
propagate_console_signal( console, event->event, group );
|
||||||
|
return !get_error();
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
set_error( STATUS_INVALID_HANDLE );
|
set_error( STATUS_INVALID_HANDLE );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -116,6 +116,7 @@ static void dump_ioctl_code( const char *prefix, const ioctl_code_t *code )
|
||||||
#define CASE(c) case c: fprintf( stderr, "%s%s", prefix, #c ); break
|
#define CASE(c) case c: fprintf( stderr, "%s%s", prefix, #c ); break
|
||||||
CASE(IOCTL_CONDRV_ACTIVATE);
|
CASE(IOCTL_CONDRV_ACTIVATE);
|
||||||
CASE(IOCTL_CONDRV_ATTACH_RENDERER);
|
CASE(IOCTL_CONDRV_ATTACH_RENDERER);
|
||||||
|
CASE(IOCTL_CONDRV_CTRL_EVENT);
|
||||||
CASE(IOCTL_CONDRV_FILL_OUTPUT);
|
CASE(IOCTL_CONDRV_FILL_OUTPUT);
|
||||||
CASE(IOCTL_CONDRV_GET_INPUT_INFO);
|
CASE(IOCTL_CONDRV_GET_INPUT_INFO);
|
||||||
CASE(IOCTL_CONDRV_GET_MODE);
|
CASE(IOCTL_CONDRV_GET_MODE);
|
||||||
|
|
Loading…
Reference in New Issue