kernelbase: Use IOCTL_CONDRV_FILL_OUTPUT in FillConsoleOutputCharacterW.

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-14 16:23:22 +02:00 committed by Alexandre Julliard
parent 6b96e0e0cb
commit bf6a803e04
1 changed files with 11 additions and 14 deletions

View File

@ -446,7 +446,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterA( HANDLE handle, CHAR c
BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterW( HANDLE handle, WCHAR ch, DWORD length, BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterW( HANDLE handle, WCHAR ch, DWORD length,
COORD coord, DWORD *written ) COORD coord, DWORD *written )
{ {
BOOL ret; struct condrv_fill_output_params params;
TRACE( "(%p,%s,%d,(%dx%d),%p)\n", handle, debugstr_wn(&ch, 1), length, coord.X, coord.Y, written ); TRACE( "(%p,%s,%d,(%dx%d),%p)\n", handle, debugstr_wn(&ch, 1), length, coord.X, coord.Y, written );
@ -457,19 +457,16 @@ BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterW( HANDLE handle, WCHAR
} }
*written = 0; *written = 0;
SERVER_START_REQ( fill_console_output )
{ params.mode = CHAR_INFO_MODE_TEXT;
req->handle = console_handle_unmap( handle ); params.x = coord.X;
req->x = coord.X; params.y = coord.Y;
req->y = coord.Y; params.count = length;
req->mode = CHAR_INFO_MODE_TEXT; params.wrap = TRUE;
req->wrap = TRUE; params.ch = ch;
req->data.ch = ch; params.attr = 0;
req->count = length; return console_ioctl( handle, IOCTL_CONDRV_FILL_OUTPUT, &params, sizeof(params),
if ((ret = !wine_server_call_err( req ))) *written = reply->written; written, sizeof(written), NULL );
}
SERVER_END_REQ;
return ret;
} }
HANDLE get_console_wait_handle( HANDLE handle ) HANDLE get_console_wait_handle( HANDLE handle )