Author: hbelusca
Date: Fri Nov 2 18:00:47 2012
New Revision: 57666
URL:
http://svn.reactos.org/svn/reactos?rev=57666&view=rev
Log:
[KERNEL32]
This is the first of a series of commits aiming at making kernel32 using the new CSR
messaging structures for communicating with Server Dlls.
Modified:
branches/ros-csrss/dll/win32/kernel32/client/dosdev.c
branches/ros-csrss/dll/win32/kernel32/client/proc.c
branches/ros-csrss/dll/win32/kernel32/client/vdm.c
branches/ros-csrss/dll/win32/kernel32/client/vista.c
Modified: branches/ros-csrss/dll/win32/kernel32/client/dosdev.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-csrss/dll/win32/kernel32/cl…
==============================================================================
--- branches/ros-csrss/dll/win32/kernel32/client/dosdev.c [iso-8859-1] (original)
+++ branches/ros-csrss/dll/win32/kernel32/client/dosdev.c [iso-8859-1] Fri Nov 2 18:00:47
2012
@@ -90,8 +90,9 @@
{
ULONG ArgumentCount;
ULONG BufferSize;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_DEFINE_DOS_DEVICE DefineDosDeviceRequest =
&ApiMessage.Data.DefineDosDeviceRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
- CSR_API_MESSAGE Request;
NTSTATUS Status;
UNICODE_STRING NtTargetPathU;
UNICODE_STRING DeviceNameU;
@@ -157,16 +158,16 @@
}
else
{
- Request.Data.DefineDosDeviceRequest.dwFlags = dwFlags;
+ DefineDosDeviceRequest->dwFlags = dwFlags;
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)DeviceUpcaseNameU.Buffer,
DeviceUpcaseNameU.Length,
-
(PVOID*)&Request.Data.DefineDosDeviceRequest.DeviceName.Buffer);
-
- Request.Data.DefineDosDeviceRequest.DeviceName.Length =
+
(PVOID*)&DefineDosDeviceRequest->DeviceName.Buffer);
+
+ DefineDosDeviceRequest->DeviceName.Length =
DeviceUpcaseNameU.Length;
- Request.Data.DefineDosDeviceRequest.DeviceName.MaximumLength =
+ DefineDosDeviceRequest->DeviceName.MaximumLength =
DeviceUpcaseNameU.Length;
if (NtTargetPathU.Buffer)
@@ -174,21 +175,20 @@
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)NtTargetPathU.Buffer,
NtTargetPathU.Length,
-
(PVOID*)&Request.Data.DefineDosDeviceRequest.TargetName.Buffer);
- }
- Request.Data.DefineDosDeviceRequest.TargetName.Length =
+
(PVOID*)&DefineDosDeviceRequest->TargetName.Buffer);
+ }
+ DefineDosDeviceRequest->TargetName.Length =
NtTargetPathU.Length;
- Request.Data.DefineDosDeviceRequest.TargetName.MaximumLength =
+ DefineDosDeviceRequest->TargetName.MaximumLength =
NtTargetPathU.Length;
- Status = CsrClientCallServer(&Request,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepDefineDosDevice),
- sizeof(CSR_API_MESSAGE));
+ sizeof(BASE_DEFINE_DOS_DEVICE));
CsrFreeCaptureBuffer(CaptureBuffer);
- if (! NT_SUCCESS(Status) ||
- ! NT_SUCCESS(Status = Request.Status))
+ if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
WARN("CsrClientCallServer() failed (Status %lx)\n",
Status);
Modified: branches/ros-csrss/dll/win32/kernel32/client/proc.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-csrss/dll/win32/kernel32/cl…
==============================================================================
--- branches/ros-csrss/dll/win32/kernel32/client/proc.c [iso-8859-1] (original)
+++ branches/ros-csrss/dll/win32/kernel32/client/proc.c [iso-8859-1] Fri Nov 2 18:00:47
2012
@@ -1,10 +1,9 @@
-/* $Id: proc.c 57086 2012-08-16 15:39:40Z akhaldi $
- *
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/kernel32/proc/proc.c
* PURPOSE: Process functions
- * PROGRAMMER: Ariadne ( ariadne(a)xs4all.nl)
+ * PROGRAMMERS: Ariadne (ariadne(a)xs4all.nl)
* UPDATE HISTORY:
* Created 01/11/98
*/
@@ -13,7 +12,7 @@
#include <k32.h>
-#define NDEBUG
+// #define NDEBUG
#include <debug.h>
/* GLOBALS *******************************************************************/
@@ -494,25 +493,26 @@
BasepNotifyCsrOfThread(IN HANDLE ThreadHandle,
IN PCLIENT_ID ClientId)
{
- CSR_API_MESSAGE CsrRequest;
- NTSTATUS Status;
+ NTSTATUS Status;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_CREATE_THREAD CreateThreadRequest = &ApiMessage.Data.CreateThreadRequest;
DPRINT("BasepNotifyCsrOfThread: Thread: %lx, Handle %lx\n",
ClientId->UniqueThread, ThreadHandle);
/* Fill out the request */
- CsrRequest.Data.CreateThreadRequest.ClientId = *ClientId;
- CsrRequest.Data.CreateThreadRequest.ThreadHandle = ThreadHandle;
+ CreateThreadRequest->ClientId = *ClientId;
+ CreateThreadRequest->ThreadHandle = ThreadHandle;
/* Call CSR */
- Status = CsrClientCallServer(&CsrRequest,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepCreateThread),
- sizeof(CSR_API_MESSAGE));
- if (!NT_SUCCESS(Status) || !NT_SUCCESS(CsrRequest.Status))
- {
- DPRINT1("Failed to tell csrss about new thread: %lx %lx\n", Status,
CsrRequest.Status);
- return CsrRequest.Status;
+ sizeof(BASE_CREATE_THREAD));
+ if (!NT_SUCCESS(Status) || !NT_SUCCESS(ApiMessage.Status))
+ {
+ DPRINT1("Failed to tell csrss about new thread: %lx %lx\n", Status,
ApiMessage.Status);
+ return ApiMessage.Status;
}
/* Return Success */
@@ -531,13 +531,15 @@
BOOLEAN InheritHandles,
DWORD dwCreationFlags)
{
+ NTSTATUS Status;
OBJECT_ATTRIBUTES LocalObjectAttributes;
POBJECT_ATTRIBUTES ObjectAttributes;
CONTEXT Context;
INITIAL_TEB InitialTeb;
- NTSTATUS Status;
HANDLE hThread;
- CSR_API_MESSAGE CsrRequest;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_CREATE_PROCESS CreateProcessRequest =
&ApiMessage.Data.CreateProcessRequest;
+
DPRINT("BasepCreateFirstThread. hProcess: %lx\n", ProcessHandle);
/* Create the Thread's Stack */
@@ -573,20 +575,21 @@
}
/* Fill out the request to notify CSRSS */
- CsrRequest.Data.CreateProcessRequest.ClientId = *ClientId;
- CsrRequest.Data.CreateProcessRequest.ProcessHandle = ProcessHandle;
- CsrRequest.Data.CreateProcessRequest.ThreadHandle = hThread;
- CsrRequest.Data.CreateProcessRequest.CreationFlags = dwCreationFlags;
- CsrRequest.Data.CreateProcessRequest.bInheritHandles = InheritHandles;
+ CreateProcessRequest->ClientId = *ClientId;
+ CreateProcessRequest->ProcessHandle = ProcessHandle;
+ CreateProcessRequest->ThreadHandle = hThread;
+ CreateProcessRequest->CreationFlags = dwCreationFlags;
+ CreateProcessRequest->bInheritHandles = InheritHandles;
/* Call CSR */
- Status = CsrClientCallServer(&CsrRequest,
+ DPRINT1("Calling CsrClientCallServer from BasepCreateFirstThread...\n");
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepCreateProcess),
- sizeof(CSR_API_MESSAGE));
- if (!NT_SUCCESS(Status) || !NT_SUCCESS(CsrRequest.Status))
- {
- DPRINT1("Failed to tell csrss about new process: %lx %lx\n", Status,
CsrRequest.Status);
+ sizeof(BASE_CREATE_PROCESS));
+ if (!NT_SUCCESS(Status) || !NT_SUCCESS(ApiMessage.Status))
+ {
+ DPRINT1("Failed to tell csrss about new process: %lx %lx\n", Status,
ApiMessage.Status);
return NULL;
}
@@ -1174,24 +1177,25 @@
GetProcessShutdownParameters(OUT LPDWORD lpdwLevel,
OUT LPDWORD lpdwFlags)
{
- CSR_API_MESSAGE CsrRequest;
- NTSTATUS Status;
+ NTSTATUS Status;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_GET_PROCESS_SHUTDOWN_PARAMS GetShutdownParametersRequest =
&ApiMessage.Data.GetShutdownParametersRequest;
/* Ask CSRSS for shutdown information */
- Status = CsrClientCallServer(&CsrRequest,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepGetProcessShutdownParam),
- sizeof(CSR_API_MESSAGE));
- if (!(NT_SUCCESS(Status)) || !(NT_SUCCESS(CsrRequest.Status)))
+ sizeof(BASE_GET_PROCESS_SHUTDOWN_PARAMS));
+ if (!(NT_SUCCESS(Status)) || !(NT_SUCCESS(ApiMessage.Status)))
{
/* Return the failure from CSRSS */
- BaseSetLastNTError(CsrRequest.Status);
+ BaseSetLastNTError(ApiMessage.Status);
return FALSE;
}
/* Get the data out of the LCP reply */
- *lpdwLevel = CsrRequest.Data.GetShutdownParametersRequest.Level;
- *lpdwFlags = CsrRequest.Data.GetShutdownParametersRequest.Flags;
+ *lpdwLevel = GetShutdownParametersRequest->Level;
+ *lpdwFlags = GetShutdownParametersRequest->Flags;
return TRUE;
}
@@ -1203,20 +1207,21 @@
SetProcessShutdownParameters(IN DWORD dwLevel,
IN DWORD dwFlags)
{
- CSR_API_MESSAGE CsrRequest;
- NTSTATUS Status;
+ NTSTATUS Status;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_SET_PROCESS_SHUTDOWN_PARAMS SetShutdownParametersRequest =
&ApiMessage.Data.SetShutdownParametersRequest;
/* Write the data into the CSRSS request and send it */
- CsrRequest.Data.SetShutdownParametersRequest.Level = dwLevel;
- CsrRequest.Data.SetShutdownParametersRequest.Flags = dwFlags;
- Status = CsrClientCallServer(&CsrRequest,
+ SetShutdownParametersRequest->Level = dwLevel;
+ SetShutdownParametersRequest->Flags = dwFlags;
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepSetProcessShutdownParam),
- sizeof(CSR_API_MESSAGE));
- if (!NT_SUCCESS(Status) || !NT_SUCCESS(CsrRequest.Status))
+ sizeof(BASE_SET_PROCESS_SHUTDOWN_PARAMS));
+ if (!NT_SUCCESS(Status) || !NT_SUCCESS(ApiMessage.Status))
{
/* Return the failure from CSRSS */
- BaseSetLastNTError(CsrRequest.Status);
+ BaseSetLastNTError(ApiMessage.Status);
return FALSE;
}
@@ -1740,7 +1745,9 @@
WINAPI
ExitProcess(IN UINT uExitCode)
{
- CSR_API_MESSAGE CsrRequest;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_EXIT_PROCESS ExitProcessRequest = &ApiMessage.Data.ExitProcessRequest;
+
ASSERT(!BaseRunningInServerProcess);
_SEH2_TRY
@@ -1755,11 +1762,11 @@
LdrShutdownProcess();
/* Notify Base Server of process termination */
- CsrRequest.Data.TerminateProcessRequest.uExitCode = uExitCode;
- CsrClientCallServer(&CsrRequest,
+ ExitProcessRequest->uExitCode = uExitCode;
+ CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepExitProcess),
- sizeof(CSR_API_MESSAGE));
+ sizeof(BASE_EXIT_PROCESS));
/* Now do it again */
NtTerminateProcess(NtCurrentProcess(), uExitCode);
Modified: branches/ros-csrss/dll/win32/kernel32/client/vdm.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-csrss/dll/win32/kernel32/cl…
==============================================================================
--- branches/ros-csrss/dll/win32/kernel32/client/vdm.c [iso-8859-1] (original)
+++ branches/ros-csrss/dll/win32/kernel32/client/vdm.c [iso-8859-1] Fri Nov 2 18:00:47
2012
@@ -70,7 +70,7 @@
IN PCWCH CommandLine,
IN PCWCH CurrentDirectory,
IN PANSI_STRING AnsiEnvironment,
- IN PCSR_API_MESSAGE Msg,
+ IN PCSR_API_MESSAGE ApiMessage,
IN OUT PULONG iTask,
IN DWORD CreationFlags,
IN LPSTARTUPINFOW StartupInfo)
@@ -87,8 +87,10 @@
IN ULONG IndexInfo,
IN ULONG BinaryType)
{
+#if 0 // Unimplemented in BASESRV
NTSTATUS Status;
- CSR_API_MESSAGE Msg;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_UPDATE_VDM_ENTRY UpdateVdmEntry = &ApiMessage.Data.UpdateVdmEntry;
/* Check what update is being sent */
switch (UpdateIndex)
@@ -97,16 +99,16 @@
case VdmEntryUndo:
/* Tell the server how far we had gotten along */
- Msg.Data.UpdateVdmEntry.iTask = (ULONG)*WaitHandle;
- Msg.Data.UpdateVdmEntry.VDMCreationState = IndexInfo;
+ UpdateVdmEntry->iTask = (ULONG)*WaitHandle;
+ UpdateVdmEntry->VDMCreationState = IndexInfo;
break;
/* VDM is ready with a new process handle */
case VdmEntryUpdateProcess:
/* Send it the process handle */
- Msg.Data.UpdateVdmEntry.VDMProcessHandle = *WaitHandle;
- Msg.Data.UpdateVdmEntry.iTask = IndexInfo;
+ UpdateVdmEntry->VDMProcessHandle = *WaitHandle;
+ UpdateVdmEntry->iTask = IndexInfo;
break;
}
@@ -114,32 +116,32 @@
if (BinaryType == BINARY_TYPE_WOW)
{
/* Magic value for 16-bit apps */
- Msg.Data.UpdateVdmEntry.ConsoleHandle = (HANDLE)-1;
- }
- else if (Msg.Data.UpdateVdmEntry.iTask)
+ UpdateVdmEntry->ConsoleHandle = (HANDLE)-1;
+ }
+ else if (UpdateVdmEntry->iTask)
{
/* No handle for true VDM */
- Msg.Data.UpdateVdmEntry.ConsoleHandle = 0;
+ UpdateVdmEntry->ConsoleHandle = 0;
}
else
{
/* Otherwise, send the regular consoel handle */
- Msg.Data.UpdateVdmEntry.ConsoleHandle =
NtCurrentPeb()->ProcessParameters->ConsoleHandle;
+ UpdateVdmEntry->ConsoleHandle =
NtCurrentPeb()->ProcessParameters->ConsoleHandle;
}
/* Finally write the index and binary type */
- Msg.Data.UpdateVdmEntry.EntryIndex = UpdateIndex;
- Msg.Data.UpdateVdmEntry.BinaryType = BinaryType;
+ UpdateVdmEntry->EntryIndex = UpdateIndex;
+ UpdateVdmEntry->BinaryType = BinaryType;
/* Send the message to CSRSS */
- Status = CsrClientCallServer(&Msg,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepUpdateVDMEntry),
- sizeof(Msg));
- if (!(NT_SUCCESS(Status)) || !(NT_SUCCESS(Msg.Status)))
+ sizeof(BASE_UPDATE_VDM_ENTRY));
+ if (!(NT_SUCCESS(Status)) || !(NT_SUCCESS(ApiMessage.Status)))
{
/* Handle failure */
- BaseSetLastNTError(Msg.Status);
+ BaseSetLastNTError(ApiMessage.Status);
return FALSE;
}
@@ -147,9 +149,9 @@
if (UpdateIndex == VdmEntryUpdateProcess)
{
/* Return it to the caller */
- *WaitHandle = Msg.Data.UpdateVdmEntry.WaitObjectForParent;
- }
-
+ *WaitHandle = UpdateVdmEntry->WaitObjectForParent;
+ }
+#endif
/* We made it */
return TRUE;
}
@@ -159,9 +161,11 @@
BaseCheckForVDM(IN HANDLE ProcessHandle,
OUT LPDWORD ExitCode)
{
+#if 0 // Unimplemented in BASESRV
NTSTATUS Status;
EVENT_BASIC_INFORMATION EventBasicInfo;
- CSR_API_MESSAGE Msg;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_GET_VDM_EXIT_CODE GetVdmExitCode = &ApiMessage.Data.GetVdmExitCode;
/* It's VDM if the process is actually a wait handle (an event) */
Status = NtQueryEvent(ProcessHandle,
@@ -172,18 +176,19 @@
if (!NT_SUCCESS(Status)) return FALSE;
/* Setup the input parameters */
- Msg.Data.GetVdmExitCode.ConsoleHandle =
NtCurrentPeb()->ProcessParameters->ConsoleHandle;
- Msg.Data.GetVdmExitCode.hParent = ProcessHandle;
+ GetVdmExitCode->ConsoleHandle =
NtCurrentPeb()->ProcessParameters->ConsoleHandle;
+ GetVdmExitCode->hParent = ProcessHandle;
/* Call CSRSS */
- Status = CsrClientCallServer(&Msg,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
- CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepCheckVDM /* BasepGetVDMExitCode */),
- sizeof(Msg));
+ CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX,
BasepGetVDMExitCode /* BasepCheckVDM */),
+ sizeof(BASE_GET_VDM_EXIT_CODE));
if (!NT_SUCCESS(Status)) return FALSE;
/* Get the exit code from the reply */
- *ExitCode = Msg.Data.GetVdmExitCode.ExitCode;
+ *ExitCode = GetVdmExitCode->ExitCode;
+#endif
return TRUE;
}
Modified: branches/ros-csrss/dll/win32/kernel32/client/vista.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-csrss/dll/win32/kernel32/cl…
==============================================================================
--- branches/ros-csrss/dll/win32/kernel32/client/vista.c [iso-8859-1] (original)
+++ branches/ros-csrss/dll/win32/kernel32/client/vista.c [iso-8859-1] Fri Nov 2 18:00:47
2012
@@ -318,8 +318,9 @@
WINAPI
GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
{
- CSR_API_MESSAGE Request;
NTSTATUS Status;
+ CONSOLE_API_MESSAGE ApiMessage;
+ PCSRSS_GET_HISTORY_INFO GetHistoryInfo = &ApiMessage.Data.GetHistoryInfo;
if (lpConsoleHistoryInfo->cbSize != sizeof(CONSOLE_HISTORY_INFO))
{
@@ -327,19 +328,19 @@
return FALSE;
}
- Status = CsrClientCallServer(&Request,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
- CSR_CREATE_API_NUMBER(CSR_CONSOLE, GET_HISTORY_INFO),
- sizeof(CSR_API_MESSAGE));
- if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status))
+ CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX,
ConsolepGetHistory),
+ sizeof(CSRSS_GET_HISTORY_INFO));
+ if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return FALSE;
}
- lpConsoleHistoryInfo->HistoryBufferSize =
Request.Data.GetHistoryInfo.HistoryBufferSize;
- lpConsoleHistoryInfo->NumberOfHistoryBuffers =
Request.Data.GetHistoryInfo.NumberOfHistoryBuffers;
- lpConsoleHistoryInfo->dwFlags =
Request.Data.GetHistoryInfo.dwFlags;
+ lpConsoleHistoryInfo->HistoryBufferSize =
GetHistoryInfo->HistoryBufferSize;
+ lpConsoleHistoryInfo->NumberOfHistoryBuffers =
GetHistoryInfo->NumberOfHistoryBuffers;
+ lpConsoleHistoryInfo->dwFlags = GetHistoryInfo->dwFlags;
return TRUE;
}
@@ -354,8 +355,9 @@
WINAPI
SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
{
- CSR_API_MESSAGE Request;
NTSTATUS Status;
+ CONSOLE_API_MESSAGE ApiMessage;
+ PCSRSS_SET_HISTORY_INFO SetHistoryInfo = &ApiMessage.Data.SetHistoryInfo;
if (lpConsoleHistoryInfo->cbSize != sizeof(CONSOLE_HISTORY_INFO))
{
@@ -363,15 +365,15 @@
return FALSE;
}
- Request.Data.SetHistoryInfo.HistoryBufferSize =
lpConsoleHistoryInfo->HistoryBufferSize;
- Request.Data.SetHistoryInfo.NumberOfHistoryBuffers =
lpConsoleHistoryInfo->NumberOfHistoryBuffers;
- Request.Data.SetHistoryInfo.dwFlags =
lpConsoleHistoryInfo->dwFlags;
-
- Status = CsrClientCallServer(&Request,
+ SetHistoryInfo->HistoryBufferSize =
lpConsoleHistoryInfo->HistoryBufferSize;
+ SetHistoryInfo->NumberOfHistoryBuffers =
lpConsoleHistoryInfo->NumberOfHistoryBuffers;
+ SetHistoryInfo->dwFlags = lpConsoleHistoryInfo->dwFlags;
+
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
- CSR_CREATE_API_NUMBER(CSR_CONSOLE, GET_HISTORY_INFO),
- sizeof(CSR_API_MESSAGE));
- if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status))
+ CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX,
ConsolepSetHistory),
+ sizeof(CSRSS_SET_HISTORY_INFO));
+ if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return FALSE;