mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Fix boot
svn path=/trunk/; revision=17431
This commit is contained in:
parent
9eeadb66ec
commit
20d4ebeffc
3 changed files with 100 additions and 87 deletions
|
@ -489,72 +489,76 @@ typedef struct
|
||||||
|
|
||||||
typedef struct _CSR_API_MESSAGE
|
typedef struct _CSR_API_MESSAGE
|
||||||
{
|
{
|
||||||
union
|
union
|
||||||
{
|
|
||||||
PORT_MESSAGE Header;
|
|
||||||
struct
|
|
||||||
{
|
{
|
||||||
BYTE HeaderReserved[sizeof(PORT_MESSAGE)];
|
PORT_MESSAGE Header;
|
||||||
ULONG Type;
|
union
|
||||||
NTSTATUS Status;
|
{
|
||||||
union
|
struct
|
||||||
{
|
{
|
||||||
CSRSS_CREATE_PROCESS CreateProcessRequest;
|
BYTE HeaderReserved[sizeof(PORT_MESSAGE)];
|
||||||
CSRSS_CONNECT_PROCESS ConnectRequest;
|
ULONG Type;
|
||||||
CSRSS_WRITE_CONSOLE WriteConsoleRequest;
|
NTSTATUS Status;
|
||||||
CSRSS_READ_CONSOLE ReadConsoleRequest;
|
union
|
||||||
CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
|
{
|
||||||
CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
|
CSRSS_CREATE_PROCESS CreateProcessRequest;
|
||||||
CSRSS_SET_CURSOR SetCursorRequest;
|
CSRSS_CONNECT_PROCESS ConnectRequest;
|
||||||
CSRSS_FILL_OUTPUT FillOutputRequest;
|
CSRSS_WRITE_CONSOLE WriteConsoleRequest;
|
||||||
CSRSS_READ_INPUT ReadInputRequest;
|
CSRSS_READ_CONSOLE ReadConsoleRequest;
|
||||||
CSRSS_WRITE_CONSOLE_OUTPUT_CHAR WriteConsoleOutputCharRequest;
|
CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
|
||||||
CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB WriteConsoleOutputAttribRequest;
|
CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
|
||||||
CSRSS_FILL_OUTPUT_ATTRIB FillOutputAttribRequest;
|
CSRSS_SET_CURSOR SetCursorRequest;
|
||||||
CSRSS_SET_CURSOR_INFO SetCursorInfoRequest;
|
CSRSS_FILL_OUTPUT FillOutputRequest;
|
||||||
CSRSS_GET_CURSOR_INFO GetCursorInfoRequest;
|
CSRSS_READ_INPUT ReadInputRequest;
|
||||||
CSRSS_SET_ATTRIB SetAttribRequest;
|
CSRSS_WRITE_CONSOLE_OUTPUT_CHAR WriteConsoleOutputCharRequest;
|
||||||
CSRSS_SET_CONSOLE_MODE SetConsoleModeRequest;
|
CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB WriteConsoleOutputAttribRequest;
|
||||||
CSRSS_GET_CONSOLE_MODE GetConsoleModeRequest;
|
CSRSS_FILL_OUTPUT_ATTRIB FillOutputAttribRequest;
|
||||||
CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
|
CSRSS_SET_CURSOR_INFO SetCursorInfoRequest;
|
||||||
CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
|
CSRSS_GET_CURSOR_INFO GetCursorInfoRequest;
|
||||||
CSRSS_SET_TITLE SetTitleRequest;
|
CSRSS_SET_ATTRIB SetAttribRequest;
|
||||||
CSRSS_GET_TITLE GetTitleRequest;
|
CSRSS_SET_CONSOLE_MODE SetConsoleModeRequest;
|
||||||
CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
|
CSRSS_GET_CONSOLE_MODE GetConsoleModeRequest;
|
||||||
CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
|
CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
|
||||||
CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
|
CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
|
||||||
CSRSS_READ_CONSOLE_OUTPUT_CHAR ReadConsoleOutputCharRequest;
|
CSRSS_SET_TITLE SetTitleRequest;
|
||||||
CSRSS_READ_CONSOLE_OUTPUT_ATTRIB ReadConsoleOutputAttribRequest;
|
CSRSS_GET_TITLE GetTitleRequest;
|
||||||
CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
|
CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
|
||||||
CSRSS_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
|
CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
|
||||||
CSRSS_EXIT_REACTOS ExitReactosRequest;
|
CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
|
||||||
CSRSS_SET_SHUTDOWN_PARAMETERS SetShutdownParametersRequest;
|
CSRSS_READ_CONSOLE_OUTPUT_CHAR ReadConsoleOutputCharRequest;
|
||||||
CSRSS_GET_SHUTDOWN_PARAMETERS GetShutdownParametersRequest;
|
CSRSS_READ_CONSOLE_OUTPUT_ATTRIB ReadConsoleOutputAttribRequest;
|
||||||
CSRSS_PEEK_CONSOLE_INPUT PeekConsoleInputRequest;
|
CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
|
||||||
CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest;
|
CSRSS_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
|
||||||
CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
|
CSRSS_EXIT_REACTOS ExitReactosRequest;
|
||||||
CSRSS_GET_INPUT_HANDLE GetInputHandleRequest;
|
CSRSS_SET_SHUTDOWN_PARAMETERS SetShutdownParametersRequest;
|
||||||
CSRSS_GET_OUTPUT_HANDLE GetOutputHandleRequest;
|
CSRSS_GET_SHUTDOWN_PARAMETERS GetShutdownParametersRequest;
|
||||||
CSRSS_CLOSE_HANDLE CloseHandleRequest;
|
CSRSS_PEEK_CONSOLE_INPUT PeekConsoleInputRequest;
|
||||||
CSRSS_VERIFY_HANDLE VerifyHandleRequest;
|
CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest;
|
||||||
CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
|
CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
|
||||||
CSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
|
CSRSS_GET_INPUT_HANDLE GetInputHandleRequest;
|
||||||
CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
|
CSRSS_GET_OUTPUT_HANDLE GetOutputHandleRequest;
|
||||||
CSRSS_CREATE_DESKTOP CreateDesktopRequest;
|
CSRSS_CLOSE_HANDLE CloseHandleRequest;
|
||||||
CSRSS_SHOW_DESKTOP ShowDesktopRequest;
|
CSRSS_VERIFY_HANDLE VerifyHandleRequest;
|
||||||
CSRSS_HIDE_DESKTOP HideDesktopRequest;
|
CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
|
||||||
CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
|
CSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
|
||||||
CSRSS_SET_LOGON_NOTIFY_WINDOW SetLogonNotifyWindowRequest;
|
CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
|
||||||
CSRSS_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
|
CSRSS_CREATE_DESKTOP CreateDesktopRequest;
|
||||||
CSRSS_GET_CONSOLE_CP GetConsoleCodePage;
|
CSRSS_SHOW_DESKTOP ShowDesktopRequest;
|
||||||
CSRSS_SET_CONSOLE_CP SetConsoleCodePage;
|
CSRSS_HIDE_DESKTOP HideDesktopRequest;
|
||||||
CSRSS_GET_CONSOLE_OUTPUT_CP GetConsoleOutputCodePage;
|
CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
|
||||||
CSRSS_SET_CONSOLE_OUTPUT_CP SetConsoleOutputCodePage;
|
CSRSS_SET_LOGON_NOTIFY_WINDOW SetLogonNotifyWindowRequest;
|
||||||
CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
|
CSRSS_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
|
||||||
CSRSS_GET_PROCESS_LIST GetProcessListRequest;
|
CSRSS_GET_CONSOLE_CP GetConsoleCodePage;
|
||||||
} Data;
|
CSRSS_SET_CONSOLE_CP SetConsoleCodePage;
|
||||||
|
CSRSS_GET_CONSOLE_OUTPUT_CP GetConsoleOutputCodePage;
|
||||||
|
CSRSS_SET_CONSOLE_OUTPUT_CP SetConsoleOutputCodePage;
|
||||||
|
CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
|
||||||
|
CSRSS_GET_PROCESS_LIST GetProcessListRequest;
|
||||||
|
} Data;
|
||||||
|
};
|
||||||
|
UCHAR PadBuffer[PORT_MAXIMUM_MESSAGE_LENGTH];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
} CSR_API_MESSAGE, *PCSR_API_MESSAGE;
|
} CSR_API_MESSAGE, *PCSR_API_MESSAGE;
|
||||||
|
|
||||||
#endif /* __INCLUDE_CSRSS_CSRSS_H */
|
#endif /* __INCLUDE_CSRSS_CSRSS_H */
|
||||||
|
|
|
@ -109,29 +109,38 @@ typedef struct _SM_PORT_MESSAGE_QRYINFO
|
||||||
|
|
||||||
typedef union _SM_PORT_MESSAGE
|
typedef union _SM_PORT_MESSAGE
|
||||||
{
|
{
|
||||||
/*** LPC common header ***/
|
/*** LPC common header ***/
|
||||||
PORT_MESSAGE Header;
|
PORT_MESSAGE Header;
|
||||||
struct {
|
union
|
||||||
UCHAR LpcHeader[sizeof(PORT_MESSAGE)];
|
{
|
||||||
/*** SM common header ***/
|
struct
|
||||||
struct {
|
{
|
||||||
DWORD ApiIndex;
|
UCHAR LpcHeader[sizeof(PORT_MESSAGE)];
|
||||||
NTSTATUS Status;
|
/*** SM common header ***/
|
||||||
} SmHeader;
|
struct
|
||||||
/*** SM per API arguments ***/
|
{
|
||||||
union {
|
DWORD ApiIndex;
|
||||||
union {
|
NTSTATUS Status;
|
||||||
SM_PORT_MESSAGE_COMPSES CompSes;
|
} SmHeader;
|
||||||
SM_PORT_MESSAGE_EXECPGM ExecPgm;
|
/*** SM per API arguments ***/
|
||||||
SM_PORT_MESSAGE_QRYINFO QryInfo;
|
union
|
||||||
} Request;
|
{
|
||||||
union {
|
union
|
||||||
SM_PORT_MESSAGE_COMPSES CompSes;
|
{
|
||||||
SM_PORT_MESSAGE_EXECPGM ExecPgm;
|
SM_PORT_MESSAGE_COMPSES CompSes;
|
||||||
SM_PORT_MESSAGE_QRYINFO QryInfo;
|
SM_PORT_MESSAGE_EXECPGM ExecPgm;
|
||||||
} Reply;
|
SM_PORT_MESSAGE_QRYINFO QryInfo;
|
||||||
|
} Request;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
SM_PORT_MESSAGE_COMPSES CompSes;
|
||||||
|
SM_PORT_MESSAGE_EXECPGM ExecPgm;
|
||||||
|
SM_PORT_MESSAGE_QRYINFO QryInfo;
|
||||||
|
} Reply;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
UCHAR PadBuffer[PORT_MAXIMUM_MESSAGE_LENGTH];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
} SM_PORT_MESSAGE, * PSM_PORT_MESSAGE;
|
} SM_PORT_MESSAGE, * PSM_PORT_MESSAGE;
|
||||||
|
|
||||||
#include <poppack.h>
|
#include <poppack.h>
|
||||||
|
|
|
@ -357,7 +357,7 @@ NtRequestWaitReplyPort (IN HANDLE PortHandle,
|
||||||
ObDereferenceObject(Port);
|
ObDereferenceObject(Port);
|
||||||
return(STATUS_PORT_MESSAGE_TOO_LONG);
|
return(STATUS_PORT_MESSAGE_TOO_LONG);
|
||||||
}
|
}
|
||||||
if (LpcRequestDataSize != (LpcRequestMessageSize - sizeof(PORT_MESSAGE)))
|
if (LpcRequestDataSize > LPC_MAX_DATA_LENGTH)
|
||||||
{
|
{
|
||||||
ExFreePool(LpcRequest);
|
ExFreePool(LpcRequest);
|
||||||
if (NULL != AttachedProcess)
|
if (NULL != AttachedProcess)
|
||||||
|
|
Loading…
Reference in a new issue