From 56190eec337e0fd063811ba8850cbe580c1175df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 17 Nov 2012 23:07:59 +0000 Subject: [PATCH] [KERNEL32] - Make some functions compliant with the new structures and server apis indices names. [KERNEL32/CONSRV] - Merge CSRSS_SET_CONSOLE_MODE and CSRSS_GET_CONSOLE_MODE into CSRSS_CONSOLE_MODE. - Rename CSRSS_SETGET_CONSOLE_HW_STATE into CSRSS_CONSOLE_HW_STATE. svn path=/branches/ros-csrss/; revision=57724 --- dll/win32/kernel32/client/console/console.c | 89 ++++++++-------- include/reactos/subsys/win/conmsg.h | 23 ++--- win32ss/user/consrv/console.c | 107 +++++++------------- 3 files changed, 93 insertions(+), 126 deletions(-) diff --git a/dll/win32/kernel32/client/console/console.c b/dll/win32/kernel32/client/console/console.c index 07d882d67bc..cd9a87e96ed 100644 --- a/dll/win32/kernel32/client/console/console.c +++ b/dll/win32/kernel32/client/console/console.c @@ -202,33 +202,34 @@ DuplicateConsoleHandle(HANDLE hConsole, BOOL bInheritHandle, DWORD dwOptions) { - CSR_API_MESSAGE Request; NTSTATUS Status; + CONSOLE_API_MESSAGE ApiMessage; + PCSRSS_DUPLICATE_HANDLE DuplicateHandleRequest = &ApiMessage.Data.DuplicateHandleRequest; - if (dwOptions & ~(DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS) - || (!(dwOptions & DUPLICATE_SAME_ACCESS) - && dwDesiredAccess & ~(GENERIC_READ | GENERIC_WRITE))) + if ( (dwOptions & ~(DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) || + (!(dwOptions & DUPLICATE_SAME_ACCESS) && + (dwDesiredAccess & ~(GENERIC_READ | GENERIC_WRITE))) ) { SetLastError (ERROR_INVALID_PARAMETER); return INVALID_HANDLE_VALUE; } - Request.Data.DuplicateHandleRequest.Handle = hConsole; - Request.Data.DuplicateHandleRequest.Access = dwDesiredAccess; - Request.Data.DuplicateHandleRequest.Inheritable = bInheritHandle; - Request.Data.DuplicateHandleRequest.Options = dwOptions; + DuplicateHandleRequest->Handle = hConsole; + DuplicateHandleRequest->Access = dwDesiredAccess; + DuplicateHandleRequest->Inheritable = bInheritHandle; + DuplicateHandleRequest->Options = dwOptions; - Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CSR_CREATE_API_NUMBER(CSR_NATIVE, DUPLICATE_HANDLE), - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status=Request.Status)) + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepDuplicateHandle), + sizeof(CSRSS_DUPLICATE_HANDLE)); + if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status)) { BaseSetLastNTError(Status); return INVALID_HANDLE_VALUE; } - return Request.Data.DuplicateHandleRequest.Handle; + return DuplicateHandleRequest->Handle; } @@ -292,23 +293,23 @@ GetConsoleHardwareState(HANDLE hConsole, DWORD Flags, PDWORD State) { - CSR_API_MESSAGE Request; NTSTATUS Status; + CONSOLE_API_MESSAGE ApiMessage; + PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &ApiMessage.Data.ConsoleHardwareStateRequest; - Request.Data.ConsoleHardwareStateRequest.ConsoleHandle = hConsole; - Request.Data.ConsoleHardwareStateRequest.SetGet = CONSOLE_HARDWARE_STATE_GET; + ConsoleHardwareStateRequest->ConsoleHandle = hConsole; - Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CSR_CREATE_API_NUMBER(CSR_CONSOLE, SETGET_CONSOLE_HW_STATE), - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetHardwareState), + sizeof(CSRSS_CONSOLE_HW_STATE)); + if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status)) { BaseSetLastNTError(Status); return FALSE; } - *State = Request.Data.ConsoleHardwareStateRequest.State; + *State = ConsoleHardwareStateRequest->State; return TRUE; } @@ -498,18 +499,18 @@ SetConsoleHardwareState(HANDLE hConsole, DWORD Flags, DWORD State) { - CSR_API_MESSAGE Request; NTSTATUS Status; + CONSOLE_API_MESSAGE ApiMessage; + PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &ApiMessage.Data.ConsoleHardwareStateRequest; - Request.Data.ConsoleHardwareStateRequest.ConsoleHandle = hConsole; - Request.Data.ConsoleHardwareStateRequest.SetGet = CONSOLE_HARDWARE_STATE_SET; - Request.Data.ConsoleHardwareStateRequest.State = State; + ConsoleHardwareStateRequest->ConsoleHandle = hConsole; + ConsoleHardwareStateRequest->State = State; - Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CSR_CREATE_API_NUMBER(CSR_CONSOLE, SETGET_CONSOLE_HW_STATE), - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetHardwareState), + sizeof(CSRSS_CONSOLE_HW_STATE)); + if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status)) { BaseSetLastNTError(Status); return FALSE; @@ -910,22 +911,23 @@ WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode) { - CSR_API_MESSAGE Request; NTSTATUS Status; + CONSOLE_API_MESSAGE ApiMessage; + PCSRSS_CONSOLE_MODE ConsoleModeRequest = &ApiMessage.Data.ConsoleModeRequest; - Request.Data.GetConsoleModeRequest.ConsoleHandle = hConsoleHandle; + ConsoleModeRequest->ConsoleHandle = hConsoleHandle; - Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CSR_CREATE_API_NUMBER(CSR_CONSOLE, GET_CONSOLE_MODE), - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetMode), + sizeof(CSRSS_CONSOLE_MODE)); + if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status)) { BaseSetLastNTError(Status); return FALSE; } - *lpMode = Request.Data.GetConsoleModeRequest.ConsoleMode; + *lpMode = ConsoleModeRequest->ConsoleMode; return TRUE; } @@ -1050,17 +1052,18 @@ WINAPI SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode) { - CSR_API_MESSAGE Request; NTSTATUS Status; + CONSOLE_API_MESSAGE ApiMessage; + PCSRSS_CONSOLE_MODE ConsoleModeRequest = &ApiMessage.Data.ConsoleModeRequest; - Request.Data.SetConsoleModeRequest.ConsoleHandle = hConsoleHandle; - Request.Data.SetConsoleModeRequest.Mode = dwMode; + ConsoleModeRequest->ConsoleHandle = hConsoleHandle; + ConsoleModeRequest->ConsoleMode = dwMode; - Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CSR_CREATE_API_NUMBER(CSR_CONSOLE, SET_CONSOLE_MODE), - sizeof(CSR_API_MESSAGE)); - if(!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) + CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetMode), + sizeof(CSRSS_CONSOLE_MODE)); + if(!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status)) { BaseSetLastNTError(Status); return FALSE; diff --git a/include/reactos/subsys/win/conmsg.h b/include/reactos/subsys/win/conmsg.h index e245a6b6ac3..d56373bacaa 100644 --- a/include/reactos/subsys/win/conmsg.h +++ b/include/reactos/subsys/win/conmsg.h @@ -52,7 +52,7 @@ typedef enum _CONSRV_API_NUMBER ConsolepReadConsole, ConsolepWriteConsole, ConsolepDuplicateHandle, - /**/ ConsolepGetHandleInformation /**/, + // ConsolepGetHandleInformation, // ConsolepSetHandleInformation, ConsolepCloseHandle, ConsolepVerifyIoHandle, @@ -243,17 +243,11 @@ typedef struct WORD Attrib; } CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB; -typedef struct -{ - HANDLE ConsoleHandle; - DWORD Mode; -} CSRSS_SET_CONSOLE_MODE, *PCSRSS_SET_CONSOLE_MODE; - typedef struct { HANDLE ConsoleHandle; DWORD ConsoleMode; -} CSRSS_GET_CONSOLE_MODE, *PCSRSS_GET_CONSOLE_MODE; +} CSRSS_CONSOLE_MODE, *PCSRSS_CONSOLE_MODE; typedef struct { @@ -415,18 +409,18 @@ typedef struct HANDLE InputWaitHandle; } CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE; -#define CONSOLE_HARDWARE_STATE_GET 0 -#define CONSOLE_HARDWARE_STATE_SET 1 +/* + * Console hardware states. + */ #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0 #define CONSOLE_HARDWARE_STATE_DIRECT 1 typedef struct { HANDLE ConsoleHandle; - DWORD SetGet; /* 0=get; 1=set */ DWORD State; -} CSRSS_SETGET_CONSOLE_HW_STATE, *PCSRSS_SETGET_CONSOLE_HW_STATE; +} CSRSS_CONSOLE_HW_STATE, *PCSRSS_CONSOLE_HW_STATE; typedef struct { @@ -607,9 +601,8 @@ typedef struct _CONSOLE_API_MESSAGE CSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo; /* Console mode */ - CSRSS_SET_CONSOLE_MODE SetConsoleModeRequest; - CSRSS_GET_CONSOLE_MODE GetConsoleModeRequest; - CSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest; + CSRSS_CONSOLE_MODE ConsoleModeRequest; + CSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest; /* Console window */ CSRSS_SET_TITLE SetTitleRequest; diff --git a/win32ss/user/consrv/console.c b/win32ss/user/consrv/console.c index 1db0eb12e67..ee0fe4401b1 100644 --- a/win32ss/user/consrv/console.c +++ b/win32ss/user/consrv/console.c @@ -463,28 +463,26 @@ ConioUnpause(PCSRSS_CONSOLE Console, UINT Flags) CSR_API(SrvSetConsoleMode) { NTSTATUS Status; - PCSRSS_SET_CONSOLE_MODE SetConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetConsoleModeRequest; + PCSRSS_CONSOLE_MODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest; PCSRSS_CONSOLE Console; PCSRSS_SCREEN_BUFFER Buff; DPRINT("SrvSetConsoleMode\n"); - Status = Win32CsrLockObject(CsrGetClientThread()->Process, - SetConsoleModeRequest->ConsoleHandle, + Status = Win32CsrLockObject(ConsoleGetPerProcessData(CsrGetClientThread()->Process), + ConsoleModeRequest->ConsoleHandle, (Object_t **) &Console, GENERIC_WRITE, 0); - if (! NT_SUCCESS(Status)) - { - return Status; - } + if (!NT_SUCCESS(Status)) return Status; Buff = (PCSRSS_SCREEN_BUFFER)Console; + if (CONIO_CONSOLE_MAGIC == Console->Header.Type) { - Console->Mode = SetConsoleModeRequest->Mode & CONSOLE_INPUT_MODE_VALID; + Console->Mode = ConsoleModeRequest->ConsoleMode & CONSOLE_INPUT_MODE_VALID; } else if (CONIO_SCREEN_BUFFER_MAGIC == Console->Header.Type) { - Buff->Mode = SetConsoleModeRequest->Mode & CONSOLE_OUTPUT_MODE_VALID; + Buff->Mode = ConsoleModeRequest->ConsoleMode & CONSOLE_OUTPUT_MODE_VALID; } else { @@ -499,27 +497,27 @@ CSR_API(SrvSetConsoleMode) CSR_API(SrvGetConsoleMode) { NTSTATUS Status; - PCSRSS_GET_CONSOLE_MODE GetConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleModeRequest; + PCSRSS_CONSOLE_MODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest; PCSRSS_CONSOLE Console; PCSRSS_SCREEN_BUFFER Buff; DPRINT("SrvGetConsoleMode\n"); - Status = Win32CsrLockObject(CsrGetClientThread()->Process, GetConsoleModeRequest->ConsoleHandle, + Status = Win32CsrLockObject(ConsoleGetPerProcessData(CsrGetClientThread()->Process), + ConsoleModeRequest->ConsoleHandle, (Object_t **) &Console, GENERIC_READ, 0); - if (! NT_SUCCESS(Status)) - { - return Status; - } + if (!NT_SUCCESS(Status)) return Status; + Status = STATUS_SUCCESS; Buff = (PCSRSS_SCREEN_BUFFER) Console; + if (CONIO_CONSOLE_MAGIC == Console->Header.Type) { - GetConsoleModeRequest->ConsoleMode = Console->Mode; + ConsoleModeRequest->ConsoleMode = Console->Mode; } else if (CONIO_SCREEN_BUFFER_MAGIC == Buff->Header.Type) { - GetConsoleModeRequest->ConsoleMode = Buff->Mode; + ConsoleModeRequest->ConsoleMode = Buff->Mode; } else { @@ -614,18 +612,18 @@ CSR_API(SrvGetConsoleTitle) } /********************************************************************** - * HardwareStateProperty + * HardwareStateProperty * - * DESCRIPTION - * Set/Get the value of the HardwareState and switch - * between direct video buffer ouput and GDI windowed - * output. - * ARGUMENTS - * Client hands us a CSRSS_CONSOLE_HARDWARE_STATE - * object. We use the same object to Request. - * NOTE - * ConsoleHwState has the correct size to be compatible - * with NT's, but values are not. + * DESCRIPTION + * Set/Get the value of the HardwareState and switch + * between direct video buffer ouput and GDI windowed + * output. + * ARGUMENTS + * Client hands us a CSRSS_CONSOLE_HARDWARE_STATE + * object. We use the same object to Request. + * NOTE + * ConsoleHwState has the correct size to be compatible + * with NT's, but values are not. */ static NTSTATUS FASTCALL SetConsoleHardwareState(PCSRSS_CONSOLE Console, DWORD ConsoleHwState) @@ -650,37 +648,23 @@ SetConsoleHardwareState(PCSRSS_CONSOLE Console, DWORD ConsoleHwState) CSR_API(SrvGetConsoleHardwareState) { - PCSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleHardwareStateRequest; - PCSRSS_CONSOLE Console; NTSTATUS Status; + PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleHardwareStateRequest; + PCSRSS_CONSOLE Console; DPRINT("SrvGetConsoleHardwareState\n"); - Status = ConioLockConsole(CsrGetClientThread()->Process, + Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ConsoleHardwareStateRequest->ConsoleHandle, &Console, GENERIC_READ); - if (! NT_SUCCESS(Status)) + if (!NT_SUCCESS(Status)) { - DPRINT1("Failed to get console handle in SetConsoleHardwareState\n"); + DPRINT1("Failed to get console handle in SrvGetConsoleHardwareState\n"); return Status; } - switch (ConsoleHardwareStateRequest->SetGet) - { - case CONSOLE_HARDWARE_STATE_GET: - ConsoleHardwareStateRequest->State = Console->HardwareState; - break; - - case CONSOLE_HARDWARE_STATE_SET: - DPRINT("Setting console hardware state.\n"); - Status = SetConsoleHardwareState(Console, ConsoleHardwareStateRequest->State); - break; - - default: - Status = STATUS_INVALID_PARAMETER_2; /* Client: (handle, [set_get], mode) */ - break; - } + ConsoleHardwareStateRequest->State = Console->HardwareState; ConioUnlockConsole(Console); @@ -689,37 +673,24 @@ CSR_API(SrvGetConsoleHardwareState) CSR_API(SrvSetConsoleHardwareState) { - PCSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleHardwareStateRequest; - PCSRSS_CONSOLE Console; NTSTATUS Status; + PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleHardwareStateRequest; + PCSRSS_CONSOLE Console; DPRINT("SrvSetConsoleHardwareState\n"); - Status = ConioLockConsole(CsrGetClientThread()->Process, + Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ConsoleHardwareStateRequest->ConsoleHandle, &Console, GENERIC_READ); - if (! NT_SUCCESS(Status)) + if (!NT_SUCCESS(Status)) { - DPRINT1("Failed to get console handle in SetConsoleHardwareState\n"); + DPRINT1("Failed to get console handle in SrvSetConsoleHardwareState\n"); return Status; } - switch (ConsoleHardwareStateRequest->SetGet) - { - case CONSOLE_HARDWARE_STATE_GET: - ConsoleHardwareStateRequest->State = Console->HardwareState; - break; - - case CONSOLE_HARDWARE_STATE_SET: - DPRINT("Setting console hardware state.\n"); - Status = SetConsoleHardwareState(Console, ConsoleHardwareStateRequest->State); - break; - - default: - Status = STATUS_INVALID_PARAMETER_2; /* Client: (handle, [set_get], mode) */ - break; - } + DPRINT("Setting console hardware state.\n"); + Status = SetConsoleHardwareState(Console, ConsoleHardwareStateRequest->State); ConioUnlockConsole(Console);