From 43a5ab1712b2fbfcb00cf4cf106a0bc746f315ca Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 20 Feb 2011 19:23:46 +0000 Subject: [PATCH] [WIN32CSR] Add a new API GetTempFile() that returns an identifier to be used for creating temporary files. This API should be in basesrv.dll svn path=/trunk/; revision=50835 --- reactos/include/reactos/subsys/csrss/csrss.h | 9 ++++- .../subsystems/win32/csrss/win32csr/dllmain.c | 1 + .../subsystems/win32/csrss/win32csr/file.c | 33 +++++++++++++++++++ .../subsystems/win32/csrss/win32csr/file.h | 17 ++++++++++ .../subsystems/win32/csrss/win32csr/w32csr.h | 1 + .../win32/csrss/win32csr/win32csr.rbuild | 1 + 6 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 reactos/subsystems/win32/csrss/win32csr/file.c create mode 100644 reactos/subsystems/win32/csrss/win32csr/file.h diff --git a/reactos/include/reactos/subsys/csrss/csrss.h b/reactos/include/reactos/subsys/csrss/csrss.h index 1156d39bd49..47c5addc8b8 100644 --- a/reactos/include/reactos/subsys/csrss/csrss.h +++ b/reactos/include/reactos/subsys/csrss/csrss.h @@ -511,7 +511,12 @@ typedef struct DWORD NumberOfHistoryBuffers; DWORD dwFlags; } CSRSS_GET_HISTORY_INFO, *PCSRSS_GET_HISTORY_INFO, - CSRSS_SET_HISTORY_INFO, *PCSRSS_SET_HISTORY_INFO; + CSRSS_SET_HISTORY_INFO, *PCSRSS_SET_HISTORY_INFO;; + +typedef struct +{ + UINT UniqueID; +} CSRSS_GET_TEMP_FILE, *PCSRSS_GET_TEMP_FILE; #define CSR_API_MESSAGE_HEADER_SIZE(Type) (FIELD_OFFSET(CSR_API_MESSAGE, Data) + sizeof(Type)) #define CSRSS_MAX_WRITE_CONSOLE (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE)) @@ -592,6 +597,7 @@ typedef struct #define SET_HISTORY_NUMBER_COMMANDS (0x45) #define GET_HISTORY_INFO (0x46) #define SET_HISTORY_INFO (0x47) +#define GET_TEMP_FILE (0x48) /* Keep in sync with definition below. */ #define CSRSS_HEADER_SIZE (sizeof(PORT_MESSAGE) + sizeof(ULONG) + sizeof(NTSTATUS)) @@ -673,6 +679,7 @@ typedef struct _CSR_API_MESSAGE CSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands; CSRSS_GET_HISTORY_INFO GetHistoryInfo; CSRSS_SET_HISTORY_INFO SetHistoryInfo; + CSRSS_GET_TEMP_FILE GetTempFile; } Data; } CSR_API_MESSAGE, *PCSR_API_MESSAGE; diff --git a/reactos/subsystems/win32/csrss/win32csr/dllmain.c b/reactos/subsystems/win32/csrss/win32csr/dllmain.c index f38558838e8..06112ab1f42 100644 --- a/reactos/subsystems/win32/csrss/win32csr/dllmain.c +++ b/reactos/subsystems/win32/csrss/win32csr/dllmain.c @@ -87,6 +87,7 @@ static CSRSS_API_DEFINITION Win32CsrApiDefinitions[] = CSRSS_DEFINE_API(SET_HISTORY_NUMBER_COMMANDS, CsrSetHistoryNumberCommands), CSRSS_DEFINE_API(GET_HISTORY_INFO, CsrGetHistoryInfo), CSRSS_DEFINE_API(SET_HISTORY_INFO, CsrSetHistoryInfo), + CSRSS_DEFINE_API(GET_TEMP_FILE, CsrGetTempFile), { 0, 0, NULL } }; diff --git a/reactos/subsystems/win32/csrss/win32csr/file.c b/reactos/subsystems/win32/csrss/win32csr/file.c new file mode 100644 index 00000000000..fd36621f9c3 --- /dev/null +++ b/reactos/subsystems/win32/csrss/win32csr/file.c @@ -0,0 +1,33 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * FILE: subsys/csrss/win32csr/file.c + * PURPOSE: File handling + * PROGRAMMERS: Pierre Schweitzer (pierre.schweitzer@reactos.org) + * NOTE: Belongs to basesrv.dll + */ + +/* INCLUDES ******************************************************************/ + +#include + +#define NDEBUG +#include + +/* GLOBALS *******************************************************************/ + +UINT CsrGetTempFileUnique; + +/* FUNCTIONS *****************************************************************/ + +CSR_API(CsrGetTempFile) +{ + DPRINT1("CsrGetTempFile entered\n"); + + /* Return 16-bits ID */ + Request->Data.GetTempFile.UniqueID = (++CsrGetTempFileUnique & 0xFFFF); + + DPRINT1("Returning: %u\n", Request->Data.GetTempFile.UniqueID); + + return STATUS_SUCCESS; +} diff --git a/reactos/subsystems/win32/csrss/win32csr/file.h b/reactos/subsystems/win32/csrss/win32csr/file.h new file mode 100644 index 00000000000..c163ee53254 --- /dev/null +++ b/reactos/subsystems/win32/csrss/win32csr/file.h @@ -0,0 +1,17 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * FILE: subsystem/win32/csrss/win32csr/file.h + * PURPOSE: File handling + * PROGRAMMERS: Pierre Schweitzer (pierre.schweitzer@reactos.org) + * NOTE: Belongs to basesrv.dll + */ + +#pragma once + +#include "api.h" + +/* Api functions */ +CSR_API(CsrGetTempFile); + +/* EOF */ diff --git a/reactos/subsystems/win32/csrss/win32csr/w32csr.h b/reactos/subsystems/win32/csrss/win32csr/w32csr.h index 5ecc378a7c7..8516cccd034 100644 --- a/reactos/subsystems/win32/csrss/win32csr/w32csr.h +++ b/reactos/subsystems/win32/csrss/win32csr/w32csr.h @@ -18,6 +18,7 @@ #include #include #include +#include "file.h" #include "guiconsole.h" #include "tuiconsole.h" #include diff --git a/reactos/subsystems/win32/csrss/win32csr/win32csr.rbuild b/reactos/subsystems/win32/csrss/win32csr/win32csr.rbuild index 0764763980c..d81443be413 100644 --- a/reactos/subsystems/win32/csrss/win32csr/win32csr.rbuild +++ b/reactos/subsystems/win32/csrss/win32csr/win32csr.rbuild @@ -24,6 +24,7 @@ desktopbg.c dllmain.c exitros.c + file.c guiconsole.c handle.c harderror.c -- 2.17.1