server: Introduce IOCTL_CONDRV_GET_MODE ioctl.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2020-07-13 13:26:29 +02:00 committed by Alexandre Julliard
parent 58c3b5c100
commit 409160bb59
2 changed files with 19 additions and 0 deletions

View file

@ -23,6 +23,9 @@
#include "winioctl.h"
/* common console input and output ioctls */
#define IOCTL_CONDRV_GET_MODE CTL_CODE(FILE_DEVICE_CONSOLE, 0, METHOD_BUFFERED, FILE_READ_PROPERTIES)
/* console input ioctls */
#define IOCTL_CONDRV_READ_INPUT CTL_CODE(FILE_DEVICE_CONSOLE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CONDRV_WRITE_INPUT CTL_CODE(FILE_DEVICE_CONSOLE, 11, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)

View file

@ -1576,6 +1576,14 @@ static int console_input_ioctl( struct fd *fd, ioctl_code_t code, struct async *
switch (code)
{
case IOCTL_CONDRV_GET_MODE:
if (get_reply_max_size() != sizeof(console->mode))
{
set_error( STATUS_INVALID_PARAMETER );
return 0;
}
return set_reply_data( &console->mode, sizeof(console->mode) ) != NULL;
case IOCTL_CONDRV_READ_INPUT:
{
int blocking = 0;
@ -1641,6 +1649,14 @@ static int screen_buffer_ioctl( struct fd *fd, ioctl_code_t code, struct async *
switch (code)
{
case IOCTL_CONDRV_GET_MODE:
if (get_reply_max_size() != sizeof(screen_buffer->mode))
{
set_error( STATUS_INVALID_PARAMETER );
return 0;
}
return set_reply_data( &screen_buffer->mode, sizeof(screen_buffer->mode) ) != NULL;
case IOCTL_CONDRV_GET_OUTPUT_INFO:
{
struct condrv_output_info *info;