ReactOS Fundraising Campaign 2012
 
€ 4,060 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

csrss.h
Go to the documentation of this file.
00001 #ifndef __INCLUDE_CSRSS_CSRSS_H
00002 #define __INCLUDE_CSRSS_CSRSS_H
00003 
00004 #include <drivers/blue/ntddblue.h>
00005 
00006 #define CSR_NATIVE     0x0000
00007 #define CSR_CONSOLE    0x0001
00008 #define CSR_GUI        0x0002
00009 #define CONSOLE_INPUT_MODE_VALID  (0x0f)
00010 #define CONSOLE_OUTPUT_MODE_VALID (0x03)
00011 
00012 /*
00013 typedef union _CSR_API_NUMBER
00014 {
00015     WORD Index;     // CSRSS API number
00016     WORD Subsystem; // 0=NTDLL;1=KERNEL32;2=KERNEL32
00017 } CSR_API_NUMBER, *PCSR_API_NUMBER;
00018 */
00019 
00020 typedef ULONG CSR_API_NUMBER;
00021 
00022 #define MAKE_CSR_API(Number, Server) \
00023     ((Server) << 16) + Number
00024 
00025 #define CSR_CSRSS_SECTION_SIZE          (65536)
00026 
00027 typedef VOID (CALLBACK *PCONTROLDISPATCHER)(DWORD);
00028 
00029 typedef struct
00030 {
00031     ULONG Dummy;
00032 } CSRSS_CONNECT_PROCESS, *PCSRSS_CONNECT_PROCESS;
00033 
00034 typedef struct _BASE_SXS_CREATEPROCESS_MSG
00035 {
00036     ULONG Flags;
00037     ULONG ProcessParameterFlags;
00038     HANDLE FileHandle;    
00039     UNICODE_STRING SxsWin32ExePath;
00040     UNICODE_STRING SxsNtExePath;
00041     SIZE_T OverrideManifestOffset;
00042     ULONG OverrideManifestSize;
00043     SIZE_T OverridePolicyOffset;
00044     ULONG OverridePolicySize;
00045     PVOID PEManifestAddress;
00046     ULONG PEManifestSize;
00047     UNICODE_STRING CultureFallbacks;
00048     ULONG Unknown[7];
00049     UNICODE_STRING AssemblyName;
00050 } BASE_SXS_CREATEPROCESS_MSG, *PBASE_SXS_CREATEPROCESS_MSG;
00051 
00052 typedef struct
00053 {
00054     //
00055     // NT-type structure (BASE_CREATEPROCESS_MSG)
00056     //
00057     HANDLE ProcessHandle;
00058     HANDLE ThreadHandle;
00059     CLIENT_ID ClientId;
00060     ULONG CreationFlags;
00061     ULONG VdmBinaryType;
00062     ULONG VdmTask;
00063     HANDLE hVDM;
00064     BASE_SXS_CREATEPROCESS_MSG Sxs;
00065     PVOID PebAddressNative;
00066     ULONG PebAddressWow64;
00067     USHORT ProcessorArchitecture;
00068 
00069     //
00070     // ReactOS Data
00071     //
00072     BOOL bInheritHandles;
00073 } CSRSS_CREATE_PROCESS, *PCSRSS_CREATE_PROCESS;
00074 
00075 typedef struct
00076 {
00077     CLIENT_ID ClientId;
00078     HANDLE ThreadHandle;
00079 } CSRSS_CREATE_THREAD, *PCSRSS_CREATE_THREAD;
00080 
00081 typedef struct
00082 {
00083     UINT uExitCode;
00084 } CSRSS_TERMINATE_PROCESS, *PCSRSS_TERMINATE_PROCESS;
00085 
00086 typedef struct
00087 {
00088     USHORT nMaxIds;
00089     PDWORD ProcessId;
00090     ULONG nProcessIdsTotal;
00091 } CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;
00092 
00093 typedef struct
00094 {
00095    HANDLE ConsoleHandle;
00096    BOOL Unicode;
00097    ULONG NrCharactersToWrite;
00098    ULONG NrCharactersWritten;
00099    HANDLE UnpauseEvent;
00100    BYTE Buffer[0];
00101 } CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
00102 
00103 typedef struct
00104 {
00105    HANDLE ConsoleHandle;
00106    BOOL Unicode;
00107    WORD NrCharactersToRead;
00108    WORD NrCharactersRead;
00109    HANDLE EventHandle;
00110    PVOID Buffer;
00111    UNICODE_STRING ExeName;
00112    DWORD CtrlWakeupMask;
00113    DWORD ControlKeyState;
00114 } CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;
00115 
00116 typedef struct
00117 {
00118    PCONTROLDISPATCHER CtrlDispatcher;
00119    BOOLEAN ConsoleNeeded;
00120    INT ShowCmd;
00121    HANDLE Console;
00122    HANDLE InputHandle;
00123    HANDLE OutputHandle;
00124 } CSRSS_ALLOC_CONSOLE, *PCSRSS_ALLOC_CONSOLE;
00125 
00126 typedef struct
00127 {
00128     ULONG Dummy;
00129 } CSRSS_FREE_CONSOLE, *PCSRSS_FREE_CONSOLE;
00130 
00131 typedef struct
00132 {
00133    HANDLE ConsoleHandle;
00134    CONSOLE_SCREEN_BUFFER_INFO Info;
00135 } CSRSS_SCREEN_BUFFER_INFO, *PCSRSS_SCREEN_BUFFER_INFO;
00136 
00137 typedef struct
00138 {
00139    HANDLE ConsoleHandle;
00140    COORD Position;
00141 } CSRSS_SET_CURSOR, *PCSRSS_SET_CURSOR;
00142 
00143 typedef struct
00144 {
00145    HANDLE ConsoleHandle;
00146    BOOL Unicode;
00147    union
00148    {
00149      CHAR AsciiChar;
00150      WCHAR UnicodeChar;
00151    } Char;
00152    COORD Position;
00153    WORD Length;
00154    ULONG NrCharactersWritten;
00155 } CSRSS_FILL_OUTPUT, *PCSRSS_FILL_OUTPUT;
00156 
00157 typedef struct
00158 {
00159    HANDLE ConsoleHandle;
00160    CHAR Attribute;
00161    COORD Coord;
00162    WORD Length;
00163 } CSRSS_FILL_OUTPUT_ATTRIB, *PCSRSS_FILL_OUTPUT_ATTRIB;
00164 
00165 typedef struct
00166 {
00167    HANDLE ConsoleHandle;
00168    BOOL Unicode;
00169    INPUT_RECORD Input;
00170    BOOL MoreEvents;
00171    HANDLE Event;
00172 } CSRSS_READ_INPUT, *PCSRSS_READ_INPUT;
00173 
00174 typedef struct
00175 {
00176    HANDLE ConsoleHandle;
00177    BOOL Unicode;
00178    WORD Length;
00179    COORD Coord;
00180    COORD EndCoord;
00181    ULONG NrCharactersWritten;
00182    CHAR String[0];
00183 } CSRSS_WRITE_CONSOLE_OUTPUT_CHAR, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR;
00184 
00185 typedef struct
00186 {
00187    HANDLE ConsoleHandle;
00188    WORD Length;
00189    COORD Coord;
00190    COORD EndCoord;
00191    WORD Attribute[0];
00192 } CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB;
00193 
00194 typedef struct
00195 {
00196    HANDLE ConsoleHandle;
00197    CONSOLE_CURSOR_INFO Info;
00198 } CSRSS_GET_CURSOR_INFO, *PCSRSS_GET_CURSOR_INFO;
00199 
00200 typedef struct
00201 {
00202    HANDLE ConsoleHandle;
00203    CONSOLE_CURSOR_INFO Info;
00204 } CSRSS_SET_CURSOR_INFO, *PCSRSS_SET_CURSOR_INFO;
00205 
00206 typedef struct
00207 {
00208    HANDLE ConsoleHandle;
00209    WORD Attrib;
00210 } CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
00211 
00212 typedef struct
00213 {
00214   HANDLE ConsoleHandle;
00215   DWORD Mode;
00216 } CSRSS_SET_CONSOLE_MODE, *PCSRSS_SET_CONSOLE_MODE;
00217 
00218 typedef struct
00219 {
00220   HANDLE ConsoleHandle;
00221   DWORD ConsoleMode;
00222 } CSRSS_GET_CONSOLE_MODE, *PCSRSS_GET_CONSOLE_MODE;
00223 
00224 typedef struct
00225 {
00226    DWORD Access;
00227    DWORD ShareMode;
00228    BOOL Inheritable;
00229    HANDLE OutputHandle;  /* handle to newly created screen buffer */
00230 } CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
00231 
00232 typedef struct
00233 {
00234    HANDLE OutputHandle;  /* handle to screen buffer to switch to */
00235 } CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;
00236 
00237 typedef struct
00238 {
00239     HANDLE  UniqueThread;
00240     CLIENT_ID   Cid;
00241 } CSRSS_IDENTIFY_ALERTABLE_THREAD, *PCSRSS_IDENTIFY_ALERTABLE_THREAD;
00242 
00243 typedef struct
00244 {
00245   DWORD Length;
00246   PWCHAR Title;
00247 } CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
00248 
00249 typedef struct
00250 {
00251   DWORD Length;
00252   PWCHAR Title;
00253 } CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
00254 
00255 typedef struct
00256 {
00257   HANDLE ConsoleHandle;
00258   BOOL Unicode;
00259   COORD BufferSize;
00260   COORD BufferCoord;
00261   SMALL_RECT WriteRegion;
00262   CHAR_INFO* CharInfo;
00263 } CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;
00264 
00265 typedef struct
00266 {
00267    HANDLE ConsoleInput;
00268 } CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;
00269 
00270 typedef struct
00271 {
00272   HANDLE ConsoleHandle;
00273   BOOL Unicode;
00274   SMALL_RECT ScrollRectangle;
00275   BOOLEAN UseClipRectangle;
00276   SMALL_RECT ClipRectangle;
00277   COORD DestinationOrigin;
00278   CHAR_INFO Fill;
00279 } CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;
00280 
00281 typedef struct
00282 {
00283   HANDLE ConsoleHandle;
00284   BOOL Unicode;
00285   DWORD NumCharsToRead;
00286   COORD ReadCoord;
00287   COORD EndCoord;
00288   DWORD CharsRead;
00289   CHAR String[0];
00290 }CSRSS_READ_CONSOLE_OUTPUT_CHAR, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR;
00291 
00292 typedef struct
00293 {
00294   HANDLE ConsoleHandle;
00295   DWORD NumAttrsToRead;
00296   COORD ReadCoord;
00297   COORD EndCoord;
00298   WORD Attribute[0];
00299 }CSRSS_READ_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB;
00300 
00301 typedef struct
00302 {
00303   HANDLE ConsoleHandle;
00304   DWORD NumInputEvents;
00305 }CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;
00306 
00307 typedef struct
00308 {
00309   HANDLE ProcessId;
00310 } CSRSS_REGISTER_SERVICES_PROCESS, *PCSRSS_REGISTER_SERVICES_PROCESS;
00311 
00312 typedef struct
00313 {
00314   UINT Flags;
00315   DWORD Reserved;
00316 } CSRSS_EXIT_REACTOS, *PCSRSS_EXIT_REACTOS;
00317 
00318 typedef struct
00319 {
00320   DWORD Level;
00321   DWORD Flags;
00322 } CSRSS_SET_SHUTDOWN_PARAMETERS, *PCSRSS_SET_SHUTDOWN_PARAMETERS;
00323 
00324 typedef struct
00325 {
00326   DWORD Level;
00327   DWORD Flags;
00328 } CSRSS_GET_SHUTDOWN_PARAMETERS, *PCSRSS_GET_SHUTDOWN_PARAMETERS;
00329 
00330 typedef struct
00331 {
00332   HANDLE ConsoleHandle;
00333   BOOL Unicode;
00334   DWORD Length;
00335   INPUT_RECORD* InputRecord;
00336 } CSRSS_PEEK_CONSOLE_INPUT, *PCSRSS_PEEK_CONSOLE_INPUT;
00337 
00338 typedef struct
00339 {
00340   HANDLE ConsoleHandle;
00341   BOOL Unicode;
00342   COORD BufferSize;
00343   COORD BufferCoord;
00344   SMALL_RECT ReadRegion;
00345   CHAR_INFO* CharInfo;
00346 } CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;
00347 
00348 typedef struct
00349 {
00350   HANDLE ConsoleHandle;
00351   BOOL Unicode;
00352   DWORD Length;
00353   INPUT_RECORD* InputRecord;
00354 } CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;
00355 
00356 typedef struct
00357 {
00358   DWORD Access;
00359   BOOL Inheritable;
00360   HANDLE Handle;
00361   DWORD ShareMode;
00362 } CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE,
00363   CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
00364 
00365 typedef struct
00366 {
00367   HANDLE Handle;
00368 } CSRSS_CLOSE_HANDLE, *PCSRSS_CLOSE_HANDLE;
00369 
00370 typedef struct
00371 {
00372   HANDLE Handle;
00373 } CSRSS_VERIFY_HANDLE, *PCSRSS_VERIFY_HANDLE;
00374 
00375 typedef struct
00376 {
00377   HANDLE Handle;
00378   DWORD Access;
00379   BOOL Inheritable;
00380   DWORD Options;
00381 } CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
00382 
00383 #define CONSOLE_HARDWARE_STATE_GET 0
00384 #define CONSOLE_HARDWARE_STATE_SET 1
00385 
00386 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
00387 #define CONSOLE_HARDWARE_STATE_DIRECT      1
00388 
00389 typedef struct
00390 {
00391   HANDLE ConsoleHandle;
00392   DWORD SetGet; /* 0=get; 1=set */
00393   DWORD State;
00394 } CSRSS_SETGET_CONSOLE_HW_STATE, *PCSRSS_SETGET_CONSOLE_HW_STATE;
00395 
00396 typedef struct
00397 {
00398   HWND   WindowHandle;
00399 } CSRSS_GET_CONSOLE_WINDOW, *PCSRSS_GET_CONSOLE_WINDOW;
00400 
00401 typedef struct
00402 {
00403   HICON  WindowIcon;
00404 } CSRSS_SET_CONSOLE_ICON, *PCSRSS_SET_CONSOLE_ICON;
00405 
00406 typedef struct
00407 {
00408   HDESK DesktopHandle;
00409 } CSRSS_CREATE_DESKTOP, *PCSRSS_CREATE_DESKTOP;
00410 
00411 typedef struct
00412 {
00413   HWND DesktopWindow;
00414   ULONG Width;
00415   ULONG Height;
00416 } CSRSS_SHOW_DESKTOP, *PCSRSS_SHOW_DESKTOP;
00417 
00418 typedef struct
00419 {
00420   HWND DesktopWindow;
00421 } CSRSS_HIDE_DESKTOP, *PCSRSS_HIDE_DESKTOP;
00422 
00423 typedef struct
00424 {
00425   HWND LogonNotifyWindow;
00426 } CSRSS_SET_LOGON_NOTIFY_WINDOW, *PCSRSS_SET_LOGON_NOTIFY_WINDOW;
00427 
00428 typedef struct
00429 {
00430   HANDLE ProcessId;
00431   BOOL Register;
00432 } CSRSS_REGISTER_LOGON_PROCESS, *PCSRSS_REGISTER_LOGON_PROCESS;
00433 
00434 typedef struct
00435 {
00436   UINT CodePage;
00437 } CSRSS_GET_CONSOLE_CP, *PCSRSS_GET_CONSOLE_CP;
00438 
00439 typedef struct
00440 {
00441   UINT CodePage;
00442 } CSRSS_SET_CONSOLE_CP, *PCSRSS_SET_CONSOLE_CP;
00443 
00444 typedef struct
00445 {
00446   UINT CodePage;
00447 } CSRSS_GET_CONSOLE_OUTPUT_CP, *PCSRSS_GET_CONSOLE_OUTPUT_CP;
00448 
00449 typedef struct
00450 {
00451   UINT CodePage;
00452 } CSRSS_SET_CONSOLE_OUTPUT_CP, *PCSRSS_SET_CONSOLE_OUTPUT_CP;
00453 
00454 typedef struct
00455 {
00456   HANDLE InputWaitHandle;
00457 } CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
00458 
00459 typedef struct
00460 {
00461     ULONG SourceLength;
00462     ULONG ExeLength;
00463     ULONG TargetLength;
00464 } CSRSS_ADD_CONSOLE_ALIAS, *PCSRSS_ADD_CONSOLE_ALIAS;
00465 
00466 typedef struct
00467 {
00468     ULONG SourceLength;
00469     ULONG ExeLength;
00470     ULONG BytesWritten;
00471     ULONG TargetBufferLength;
00472     PVOID TargetBuffer;
00473 } CSRSS_GET_CONSOLE_ALIAS, *PCSRSS_GET_CONSOLE_ALIAS;
00474 
00475 typedef struct
00476 {
00477   LPWSTR lpExeName;
00478   DWORD BytesWritten;
00479   DWORD AliasBufferLength;
00480   LPWSTR AliasBuffer;
00481 } CSRSS_GET_ALL_CONSOLE_ALIASES, *PCSRSS_GET_ALL_CONSOLE_ALIAS;
00482 
00483 typedef struct
00484 {
00485   LPWSTR lpExeName;
00486   DWORD Length;
00487 } CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH, *PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH;
00488 
00489 typedef struct
00490 {
00491   DWORD BytesWritten;
00492   DWORD Length;
00493   LPWSTR ExeNames;
00494 }  CSRSS_GET_CONSOLE_ALIASES_EXES, *PCSRSS_GET_CONSOLE_ALIASES_EXES;
00495 
00496 typedef struct
00497 {
00498   DWORD Length;
00499 } CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH, *PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH;
00500 
00501 typedef struct
00502 {
00503   DWORD Event;
00504   DWORD ProcessGroup;
00505 } CSRSS_GENERATE_CTRL_EVENT, *PCSRSS_GENERATE_CTRL_EVENT;
00506 
00507 typedef struct
00508 {
00509   HANDLE OutputHandle;
00510   COORD Size;
00511 } CSRSS_SET_SCREEN_BUFFER_SIZE, *PCSRSS_SET_SCREEN_BUFFER_SIZE;
00512 
00513 typedef struct
00514 {
00515   CONSOLE_SELECTION_INFO Info;
00516 } CSRSS_GET_CONSOLE_SELECTION_INFO, *PCSRSS_GET_CONSOLE_SELECTION_INFO;
00517 
00518 typedef struct
00519 {
00520   UNICODE_STRING ExeName;
00521   DWORD Length;
00522 } CSRSS_GET_COMMAND_HISTORY_LENGTH, *PCSRSS_GET_COMMAND_HISTORY_LENGTH;
00523 
00524 typedef struct
00525 {
00526   UNICODE_STRING ExeName;
00527   PWCHAR History;
00528   DWORD Length;
00529 } CSRSS_GET_COMMAND_HISTORY, *PCSRSS_GET_COMMAND_HISTORY;
00530 
00531 typedef struct
00532 {
00533   UNICODE_STRING ExeName;
00534 } CSRSS_EXPUNGE_COMMAND_HISTORY, *PCSRSS_EXPUNGE_COMMAND_HISTORY;
00535 
00536 typedef struct
00537 {
00538   UNICODE_STRING ExeName;
00539   DWORD NumCommands;
00540 } CSRSS_SET_HISTORY_NUMBER_COMMANDS, *PCSRSS_SET_HISTORY_NUMBER_COMMANDS;
00541 
00542 typedef struct
00543 {
00544   DWORD HistoryBufferSize;
00545   DWORD NumberOfHistoryBuffers;
00546   DWORD dwFlags;
00547 } CSRSS_GET_HISTORY_INFO, *PCSRSS_GET_HISTORY_INFO,
00548   CSRSS_SET_HISTORY_INFO, *PCSRSS_SET_HISTORY_INFO;;
00549 
00550 typedef struct
00551 {
00552   UINT UniqueID;
00553 } CSRSS_GET_TEMP_FILE, *PCSRSS_GET_TEMP_FILE;
00554 
00555 typedef struct
00556 {
00557     UNICODE_STRING DeviceName;
00558     UNICODE_STRING TargetName;
00559     DWORD dwFlags;
00560 } CSRSS_DEFINE_DOS_DEVICE, *PCSRSS_DEFINE_DOS_DEVICE;
00561 
00562 typedef struct
00563 {
00564     ULONG VideoMode;
00565 } CSRSS_SOUND_SENTRY, *PCSRSS_SOUND_SENTRY;
00566 
00567 typedef struct
00568 {
00569     ULONG iTask;
00570     ULONG BinaryType;
00571     HANDLE ConsoleHandle;
00572     HANDLE VDMProcessHandle;
00573     HANDLE WaitObjectForParent;
00574     USHORT EntryIndex;
00575     USHORT VDMCreationState;
00576 } CSRSS_UPDATE_VDM_ENTRY, *PCSRSS_UPDATE_VDM_ENTRY;
00577 
00578 typedef struct
00579 {
00580     HANDLE ConsoleHandle;
00581     HANDLE hParent;
00582     ULONG ExitCode;
00583 } CSRSS_GET_VDM_EXIT_CODE, *PCSRSS_GET_VDM_EXIT_CODE;
00584 
00585 typedef struct
00586 {
00587     ULONG iTask;
00588     HANDLE ConsoleHandle;
00589     ULONG BinaryType;
00590     HANDLE WaitObjectForParent;
00591     HANDLE StdIn;
00592     HANDLE StdOut;
00593     HANDLE StdErr;
00594     ULONG CodePage;
00595     ULONG dwCreationFlags;
00596     PCHAR CmdLine;
00597     PCHAR appName;
00598     PCHAR PifFile;
00599     PCHAR CurDirectory;
00600     PCHAR Env;
00601     ULONG EnvLen;
00602     PVOID StartupInfo;
00603     PCHAR Desktop;
00604     ULONG DesktopLen;
00605     PCHAR Title;
00606     ULONG TitleLen;
00607     PCHAR Reserved;
00608     ULONG ReservedLen;
00609     USHORT CmdLen;
00610     USHORT AppLen;
00611     USHORT PifLen;
00612     USHORT CurDirectoryLen;
00613     USHORT CurDrive;
00614     USHORT VDMState;
00615 } CSRSS_CHECK_VDM, *PCSRSS_CHECK_VDM;
00616 
00617 #define CSR_API_MESSAGE_HEADER_SIZE(Type)       (FIELD_OFFSET(CSR_API_MESSAGE, Data) + sizeof(Type))
00618 #define CSRSS_MAX_WRITE_CONSOLE                 (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE))
00619 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR     (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_CHAR))
00620 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB   (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB))
00621 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_CHAR      (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE_OUTPUT_CHAR))
00622 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB    (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB))
00623 
00624 #define CREATE_PROCESS                (0x0)
00625 #define TERMINATE_PROCESS             (0x1)
00626 #define WRITE_CONSOLE                 (0x2)
00627 #define READ_CONSOLE                  (0x3)
00628 #define ALLOC_CONSOLE                 (0x4)
00629 #define FREE_CONSOLE                  (0x5)
00630 #define CONNECT_PROCESS               (0x6)
00631 #define SCREEN_BUFFER_INFO            (0x7)
00632 #define SET_CURSOR                    (0x8)
00633 #define FILL_OUTPUT                   (0x9)
00634 #define READ_INPUT                    (0xA)
00635 #define WRITE_CONSOLE_OUTPUT_CHAR     (0xB)
00636 #define WRITE_CONSOLE_OUTPUT_ATTRIB   (0xC)
00637 #define FILL_OUTPUT_ATTRIB            (0xD)
00638 #define GET_CURSOR_INFO               (0xE)
00639 #define SET_CURSOR_INFO               (0xF)
00640 #define SET_ATTRIB                    (0x10)
00641 #define GET_CONSOLE_MODE              (0x11)
00642 #define SET_CONSOLE_MODE              (0x12)
00643 #define CREATE_SCREEN_BUFFER          (0x13)
00644 #define SET_SCREEN_BUFFER             (0x14)
00645 #define SET_TITLE                     (0x15)
00646 #define GET_TITLE                     (0x16)
00647 #define WRITE_CONSOLE_OUTPUT          (0x17)
00648 #define FLUSH_INPUT_BUFFER            (0x18)
00649 #define SCROLL_CONSOLE_SCREEN_BUFFER  (0x19)
00650 #define READ_CONSOLE_OUTPUT_CHAR      (0x1A)
00651 #define READ_CONSOLE_OUTPUT_ATTRIB    (0x1B)
00652 #define GET_NUM_INPUT_EVENTS          (0x1C)
00653 #define REGISTER_SERVICES_PROCESS     (0x1D)
00654 #define EXIT_REACTOS                  (0x1E)
00655 #define GET_SHUTDOWN_PARAMETERS       (0x1F)
00656 #define SET_SHUTDOWN_PARAMETERS       (0x20)
00657 #define PEEK_CONSOLE_INPUT            (0x21)
00658 #define READ_CONSOLE_OUTPUT           (0x22)
00659 #define WRITE_CONSOLE_INPUT           (0x23)
00660 #define GET_INPUT_HANDLE              (0x24)
00661 #define GET_OUTPUT_HANDLE             (0x25)
00662 #define CLOSE_HANDLE                  (0x26)
00663 #define VERIFY_HANDLE                 (0x27)
00664 #define DUPLICATE_HANDLE          (0x28)
00665 #define SETGET_CONSOLE_HW_STATE       (0x29)
00666 #define GET_CONSOLE_WINDOW            (0x2A)
00667 #define CREATE_DESKTOP                (0x2B)
00668 #define SHOW_DESKTOP                  (0x2C)
00669 #define HIDE_DESKTOP                  (0x2D)
00670 #define SET_CONSOLE_ICON              (0x2E)
00671 #define SET_LOGON_NOTIFY_WINDOW       (0x2F)
00672 #define REGISTER_LOGON_PROCESS        (0x30)
00673 #define GET_CONSOLE_CP                (0x31)
00674 #define SET_CONSOLE_CP                (0x32)
00675 #define GET_CONSOLE_OUTPUT_CP         (0x33)
00676 #define SET_CONSOLE_OUTPUT_CP         (0x34)
00677 #define GET_INPUT_WAIT_HANDLE         (0x35)
00678 #define GET_PROCESS_LIST              (0x36)
00679 #define START_SCREEN_SAVER            (0x37)
00680 #define ADD_CONSOLE_ALIAS             (0x38)
00681 #define GET_CONSOLE_ALIAS             (0x39)
00682 #define GET_ALL_CONSOLE_ALIASES         (0x3A)
00683 #define GET_ALL_CONSOLE_ALIASES_LENGTH (0x3B)
00684 #define GET_CONSOLE_ALIASES_EXES      (0x3C)
00685 #define GET_CONSOLE_ALIASES_EXES_LENGTH (0x3D)
00686 #define GENERATE_CTRL_EVENT           (0x3E)
00687 #define CREATE_THREAD                 (0x3F)
00688 #define SET_SCREEN_BUFFER_SIZE        (0x40)
00689 #define GET_CONSOLE_SELECTION_INFO    (0x41)
00690 #define GET_COMMAND_HISTORY_LENGTH    (0x42)
00691 #define GET_COMMAND_HISTORY           (0x43)
00692 #define EXPUNGE_COMMAND_HISTORY       (0x44)
00693 #define SET_HISTORY_NUMBER_COMMANDS   (0x45)
00694 #define GET_HISTORY_INFO              (0x46)
00695 #define SET_HISTORY_INFO              (0x47)
00696 #define GET_TEMP_FILE                 (0x48)
00697 #define DEFINE_DOS_DEVICE             (0X49)
00698 #define SOUND_SENTRY                  (0x50)
00699 #define UPDATE_VDM_ENTRY              (0x51)
00700 #define GET_VDM_EXIT_CODE             (0x52)
00701 #define CHECK_VDM                     (0x53)
00702 
00703 /* Keep in sync with definition below. */
00704 #define CSRSS_HEADER_SIZE (sizeof(PORT_MESSAGE) + sizeof(ULONG) + sizeof(NTSTATUS))
00705 
00706 typedef struct _CSR_API_MESSAGE
00707 {
00708     PORT_MESSAGE Header;
00709     PVOID CsrCaptureData;
00710     ULONG Type;
00711     NTSTATUS Status;
00712     union
00713     {
00714         CSRSS_CREATE_PROCESS CreateProcessRequest;
00715         CSRSS_CREATE_THREAD CreateThreadRequest;
00716         CSRSS_TERMINATE_PROCESS TerminateProcessRequest;
00717         CSRSS_CONNECT_PROCESS ConnectRequest;
00718         CSRSS_WRITE_CONSOLE WriteConsoleRequest;
00719         CSRSS_READ_CONSOLE ReadConsoleRequest;
00720         CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
00721         CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
00722         CSRSS_SET_CURSOR SetCursorRequest;
00723         CSRSS_FILL_OUTPUT FillOutputRequest;
00724         CSRSS_READ_INPUT ReadInputRequest;
00725         CSRSS_WRITE_CONSOLE_OUTPUT_CHAR WriteConsoleOutputCharRequest;
00726         CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB WriteConsoleOutputAttribRequest;
00727         CSRSS_FILL_OUTPUT_ATTRIB FillOutputAttribRequest;
00728         CSRSS_SET_CURSOR_INFO SetCursorInfoRequest;
00729         CSRSS_GET_CURSOR_INFO GetCursorInfoRequest;
00730         CSRSS_SET_ATTRIB SetAttribRequest;
00731         CSRSS_SET_CONSOLE_MODE SetConsoleModeRequest;
00732         CSRSS_GET_CONSOLE_MODE GetConsoleModeRequest;
00733         CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
00734         CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
00735         CSRSS_SET_TITLE SetTitleRequest;
00736         CSRSS_GET_TITLE GetTitleRequest;
00737         CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
00738         CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
00739         CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
00740         CSRSS_READ_CONSOLE_OUTPUT_CHAR ReadConsoleOutputCharRequest;
00741         CSRSS_READ_CONSOLE_OUTPUT_ATTRIB ReadConsoleOutputAttribRequest;
00742         CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
00743         CSRSS_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
00744         CSRSS_EXIT_REACTOS ExitReactosRequest;
00745         CSRSS_SET_SHUTDOWN_PARAMETERS SetShutdownParametersRequest;
00746         CSRSS_GET_SHUTDOWN_PARAMETERS GetShutdownParametersRequest;
00747         CSRSS_PEEK_CONSOLE_INPUT PeekConsoleInputRequest;
00748         CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest;
00749         CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
00750         CSRSS_GET_INPUT_HANDLE GetInputHandleRequest;
00751         CSRSS_GET_OUTPUT_HANDLE GetOutputHandleRequest;
00752         CSRSS_CLOSE_HANDLE CloseHandleRequest;
00753         CSRSS_VERIFY_HANDLE VerifyHandleRequest;
00754         CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
00755         CSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
00756         CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
00757         CSRSS_CREATE_DESKTOP CreateDesktopRequest;
00758         CSRSS_SHOW_DESKTOP ShowDesktopRequest;
00759         CSRSS_HIDE_DESKTOP HideDesktopRequest;
00760         CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
00761         CSRSS_SET_LOGON_NOTIFY_WINDOW SetLogonNotifyWindowRequest;
00762         CSRSS_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
00763         CSRSS_GET_CONSOLE_CP GetConsoleCodePage;
00764         CSRSS_SET_CONSOLE_CP SetConsoleCodePage;
00765         CSRSS_GET_CONSOLE_OUTPUT_CP GetConsoleOutputCodePage;
00766         CSRSS_SET_CONSOLE_OUTPUT_CP SetConsoleOutputCodePage;
00767         CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
00768         CSRSS_GET_PROCESS_LIST GetProcessListRequest;
00769         CSRSS_ADD_CONSOLE_ALIAS AddConsoleAlias;
00770         CSRSS_GET_CONSOLE_ALIAS GetConsoleAlias;
00771         CSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAlias;
00772         CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength;
00773         CSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes;
00774         CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength;
00775         CSRSS_GENERATE_CTRL_EVENT GenerateCtrlEvent;
00776         CSRSS_SET_SCREEN_BUFFER_SIZE SetScreenBufferSize;
00777         CSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo;
00778         CSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength;
00779         CSRSS_GET_COMMAND_HISTORY GetCommandHistory;
00780         CSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory;
00781         CSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands;
00782         CSRSS_GET_HISTORY_INFO GetHistoryInfo;
00783         CSRSS_SET_HISTORY_INFO SetHistoryInfo;
00784         CSRSS_GET_TEMP_FILE GetTempFile;
00785         CSRSS_DEFINE_DOS_DEVICE DefineDosDeviceRequest;
00786         CSRSS_SOUND_SENTRY SoundSentryRequest;
00787         CSRSS_UPDATE_VDM_ENTRY UpdateVdmEntry;
00788         CSRSS_GET_VDM_EXIT_CODE GetVdmExitCode;
00789         CSRSS_CHECK_VDM CheckVdm;
00790     } Data;
00791 } CSR_API_MESSAGE, *PCSR_API_MESSAGE;
00792 
00793 typedef struct _NLS_USER_INFO
00794 {
00795     WCHAR iCountry[80];
00796     WCHAR sCountry[80];
00797     WCHAR sList[80];
00798     WCHAR iMeasure[80];
00799     WCHAR iPaperSize[80];
00800     WCHAR sDecimal[80];
00801     WCHAR sThousand[80];
00802     WCHAR sGrouping[80];
00803     WCHAR iDigits[80];
00804     WCHAR iLZero[80];
00805     WCHAR iNegNumber[80];
00806     WCHAR sNativeDigits[80];
00807     WCHAR iDigitSubstitution[80];
00808     WCHAR sCurrency[80];
00809     WCHAR sMonDecSep[80];
00810     WCHAR sMonThouSep[80];
00811     WCHAR sMonGrouping[80];
00812     WCHAR iCurrDigits[80];
00813     WCHAR iCurrency[80];
00814     WCHAR iNegCurr[80];
00815     WCHAR sPosSign[80];
00816     WCHAR sNegSign[80];
00817     WCHAR sTimeFormat[80];
00818     WCHAR s1159[80];
00819     WCHAR s2359[80];
00820     WCHAR sShortDate[80];
00821     WCHAR sYearMonth[80];
00822     WCHAR sLongDate[80];
00823     WCHAR iCalType[80];
00824     WCHAR iFirstDay[80];
00825     WCHAR iFirstWeek[80];
00826     WCHAR sLocale[80];
00827     WCHAR sLocaleName[85];
00828     LCID UserLocaleId;
00829     LUID InteractiveUserLuid;
00830     CHAR InteractiveUserSid[68]; // SECURITY_MAX_SID_SIZE to make ros happy
00831     ULONG ulCacheUpdateCount;
00832 } NLS_USER_INFO, *PNLS_USER_INFO;
00833 
00834 
00835 typedef struct _BASE_STATIC_SERVER_DATA
00836 {
00837     UNICODE_STRING WindowsDirectory;
00838     UNICODE_STRING WindowsSystemDirectory;
00839     UNICODE_STRING NamedObjectDirectory;
00840     USHORT WindowsMajorVersion;
00841     USHORT WindowsMinorVersion;
00842     USHORT BuildNumber;
00843     USHORT CSDNumber;
00844     USHORT RCNumber;
00845     WCHAR CSDVersion[128];
00846     SYSTEM_BASIC_INFORMATION SysInfo;
00847     SYSTEM_TIMEOFDAY_INFORMATION TimeOfDay;
00848     PVOID IniFileMapping;
00849     NLS_USER_INFO NlsUserInfo;
00850     BOOLEAN DefaultSeparateVDM;
00851     BOOLEAN IsWowTaskReady;
00852     UNICODE_STRING WindowsSys32x86Directory;
00853     BOOLEAN fTermsrvAppInstallMode;
00854     TIME_ZONE_INFORMATION tziTermsrvClientTimeZone;
00855     KSYSTEM_TIME ktTermsrvClientBias;
00856     ULONG TermsrvClientTimeZoneId;
00857     BOOLEAN LUIDDeviceMapsEnabled;
00858     ULONG TermsrvClientTimeZoneChangeNum;
00859 } BASE_STATIC_SERVER_DATA, *PBASE_STATIC_SERVER_DATA;
00860 
00861 
00862 /* Types used in the new CSR. Temporarly here for proper compile of NTDLL */
00863 #define CSR_SRV_SERVER 0
00864 
00865 typedef enum _CSR_SRV_API_NUMBER
00866 {
00867     CsrpClientConnect,
00868     CsrpThreadConnect,
00869     CsrpProfileControl,
00870     CsrpIdentifyAlertable,
00871     CsrpSetPriorityClass,
00872     CsrpMaxApiNumber
00873 } CSR_SRV_API_NUMBER, *PCSR_SRV_API_NUMBER;
00874 
00875 #define CSR_MAKE_OPCODE(s,m) ((s) << 16) | (m)
00876 
00877 typedef struct _CSR_CONNECTION_INFO
00878 {
00879     ULONG Version;
00880     ULONG Unknown;
00881     HANDLE ObjectDirectory;
00882     PVOID SharedSectionBase;
00883     PVOID SharedSectionHeap;
00884     PVOID SharedSectionData;
00885     ULONG DebugFlags;
00886     ULONG Unknown2[3];
00887     HANDLE ProcessId;
00888 } CSR_CONNECTION_INFO, *PCSR_CONNECTION_INFO;
00889 
00890 typedef struct _CSR_CLIENT_CONNECT
00891 {
00892     ULONG ServerId;
00893     PVOID ConnectionInfo;
00894     ULONG ConnectionInfoSize;
00895 } CSR_CLIENT_CONNECT, *PCSR_CLIENT_CONNECT;
00896 
00897 typedef struct _CSR_IDENTIFY_ALTERTABLE_THREAD
00898 {
00899     CLIENT_ID Cid;
00900 } CSR_IDENTIFY_ALTERTABLE_THREAD, *PCSR_IDENTIFY_ALTERTABLE_THREAD;
00901 
00902 typedef struct _CSR_SET_PRIORITY_CLASS
00903 {
00904     HANDLE hProcess;
00905     ULONG PriorityClass;
00906 } CSR_SET_PRIORITY_CLASS, *PCSR_SET_PRIORITY_CLASS;
00907 
00908 typedef struct _CSR_API_MESSAGE2
00909 {
00910     PORT_MESSAGE Header;
00911     union
00912     {
00913         CSR_CONNECTION_INFO ConnectionInfo;
00914         struct
00915         {
00916             PVOID CsrCaptureData;
00917             CSR_API_NUMBER Opcode;
00918             ULONG Status;
00919             ULONG Reserved;
00920             union
00921             {
00922                 CSR_CLIENT_CONNECT ClientConnect;
00923                 CSR_SET_PRIORITY_CLASS SetPriorityClass;
00924                 CSR_IDENTIFY_ALTERTABLE_THREAD IdentifyAlertableThread;
00925             };
00926         };
00927     };
00928 } CSR_API_MESSAGE2, *PCSR_API_MESSAGE2;
00929 
00930 typedef struct _CSR_CAPTURE_BUFFER
00931 {
00932     ULONG Size;
00933     struct _CSR_CAPTURE_BUFFER *PreviousCaptureBuffer;
00934     ULONG PointerCount;
00935     ULONG_PTR BufferEnd;
00936     ULONG_PTR PointerArray[1];
00937 } CSR_CAPTURE_BUFFER, *PCSR_CAPTURE_BUFFER;
00938 
00939 #endif /* __INCLUDE_CSRSS_CSRSS_H */

Generated on Tue May 22 2012 04:37:22 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.