⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csrss.h

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __INCLUDE_CSRSS_CSRSS_H
#define __INCLUDE_CSRSS_CSRSS_H

#include <drivers/blue/ntddblue.h>

#define CSR_NATIVE     0x0000
#define CSR_CONSOLE    0x0001
#define CSR_GUI        0x0002
#define CONSOLE_INPUT_MODE_VALID  (0x0f)
#define CONSOLE_OUTPUT_MODE_VALID (0x03)

/*
typedef union _CSR_API_NUMBER
{
    WORD Index;     // CSRSS API number
    WORD Subsystem; // 0=NTDLL;1=KERNEL32;2=KERNEL32
} CSR_API_NUMBER, *PCSR_API_NUMBER;
*/

typedef ULONG CSR_API_NUMBER;

#define MAKE_CSR_API(Number, Server) \
    ((Server) << 16) + Number

#define CSR_CSRSS_SECTION_SIZE          (65536)

typedef VOID (CALLBACK *PCONTROLDISPATCHER)(DWORD);

typedef struct
{
    ULONG Dummy;
} CSRSS_CONNECT_PROCESS, *PCSRSS_CONNECT_PROCESS;

typedef struct
{
   HANDLE NewProcessId;
   ULONG Flags;
   BOOL bInheritHandles;
} CSRSS_CREATE_PROCESS, *PCSRSS_CREATE_PROCESS;

typedef struct
{
    ULONG Dummy;
} CSRSS_TERMINATE_PROCESS, *PCSRSS_TERMINATE_PROCESS;

typedef struct
{
  ULONG nMaxIds;
   ULONG nProcessIdsCopied;
   ULONG nProcessIdsTotal;
   HANDLE ProcessId[0];
} CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;

typedef struct
{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   ULONG NrCharactersToWrite;
   ULONG NrCharactersWritten;
   BYTE Buffer[0];
} CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;

typedef struct
{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   WORD NrCharactersToRead;
   WORD nCharsCanBeDeleted;     /* number of chars already in buffer that can be backspaced */
   HANDLE EventHandle;
   ULONG NrCharactersRead;
   BYTE Buffer[0];
} CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;

typedef struct
{
   PCONTROLDISPATCHER CtrlDispatcher;
   BOOL ConsoleNeeded;
   HANDLE Console;
   HANDLE InputHandle;
   HANDLE OutputHandle;
} CSRSS_ALLOC_CONSOLE, *PCSRSS_ALLOC_CONSOLE;

typedef struct
{
    ULONG Dummy;
} CSRSS_FREE_CONSOLE, *PCSRSS_FREE_CONSOLE;

typedef struct
{
   HANDLE ConsoleHandle;
   CONSOLE_SCREEN_BUFFER_INFO Info;
} CSRSS_SCREEN_BUFFER_INFO, *PCSRSS_SCREEN_BUFFER_INFO;

typedef struct
{
   HANDLE ConsoleHandle;
   COORD Position;
} CSRSS_SET_CURSOR, *PCSRSS_SET_CURSOR;

typedef struct
{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   union
   {
     CHAR AsciiChar;
     WCHAR UnicodeChar;
   } Char;
   COORD Position;
   WORD Length;
   ULONG NrCharactersWritten;
} CSRSS_FILL_OUTPUT, *PCSRSS_FILL_OUTPUT;

typedef struct
{
   HANDLE ConsoleHandle;
   CHAR Attribute;
   COORD Coord;
   WORD Length;
} CSRSS_FILL_OUTPUT_ATTRIB, *PCSRSS_FILL_OUTPUT_ATTRIB;

typedef struct
{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   INPUT_RECORD Input;
   BOOL MoreEvents;
   HANDLE Event;
} CSRSS_READ_INPUT, *PCSRSS_READ_INPUT;

typedef struct
{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   WORD Length;
   COORD Coord;
   COORD EndCoord;
   ULONG NrCharactersWritten;
   CHAR String[0];
} CSRSS_WRITE_CONSOLE_OUTPUT_CHAR, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR;

typedef struct
{
   HANDLE ConsoleHandle;
   WORD Length;
   COORD Coord;
   COORD EndCoord;
   WORD Attribute[0];
} CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB;

typedef struct
{
   HANDLE ConsoleHandle;
   CONSOLE_CURSOR_INFO Info;
} CSRSS_GET_CURSOR_INFO, *PCSRSS_GET_CURSOR_INFO;

typedef struct
{
   HANDLE ConsoleHandle;
   CONSOLE_CURSOR_INFO Info;
} CSRSS_SET_CURSOR_INFO, *PCSRSS_SET_CURSOR_INFO;

typedef struct
{
   HANDLE ConsoleHandle;
   CHAR 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;

typedef struct
{
  /* may want to add some parameters here someday */
   HANDLE OutputHandle;  /* handle to newly created screen buffer */
} CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;

typedef struct
{
   HANDLE OutputHandle;  /* handle to screen buffer to switch to */
} CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;

typedef struct
{
	HANDLE	UniqueThread;
	CLIENT_ID	Cid;
} CSRSS_IDENTIFY_ALERTABLE_THREAD, *PCSRSS_IDENTIFY_ALERTABLE_THREAD;

typedef struct
{
  HANDLE Console;
  DWORD Length;
  WCHAR Title[0];
} CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;

typedef struct
{
  HANDLE ConsoleHandle;
  DWORD Length;
  WCHAR Title[0];
} CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;

typedef struct
{
  HANDLE ConsoleHandle;
  BOOL Unicode;
  COORD BufferSize;
  COORD BufferCoord;
  SMALL_RECT WriteRegion;
  CHAR_INFO* CharInfo;
} CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;

typedef struct
{
   HANDLE ConsoleInput;
} CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;

typedef struct
{
  HANDLE ConsoleHandle;
  BOOL Unicode;
  SMALL_RECT ScrollRectangle;
  BOOLEAN UseClipRectangle;
  SMALL_RECT ClipRectangle;
  COORD DestinationOrigin;
  CHAR_INFO Fill;
} CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;

typedef struct
{
  HANDLE ConsoleHandle;
  BOOL Unicode;
  DWORD NumCharsToRead;
  COORD ReadCoord;
  COORD EndCoord;
  DWORD CharsRead;
  CHAR String[0];
}CSRSS_READ_CONSOLE_OUTPUT_CHAR, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR;

typedef struct
{
  HANDLE ConsoleHandle;
  DWORD NumAttrsToRead;
  COORD ReadCoord;
  COORD EndCoord;
  WORD Attribute[0];
}CSRSS_READ_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB;

typedef struct
{
  HANDLE ConsoleHandle;
  DWORD NumInputEvents;
}CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;

typedef struct
{
  HANDLE ProcessId;
} CSRSS_REGISTER_SERVICES_PROCESS, *PCSRSS_REGISTER_SERVICES_PROCESS;

typedef struct
{
  UINT Flags;
  DWORD Reserved;
} CSRSS_EXIT_REACTOS, *PCSRSS_EXIT_REACTOS;

typedef struct
{
  DWORD Level;
  DWORD Flags;
} CSRSS_SET_SHUTDOWN_PARAMETERS, *PCSRSS_SET_SHUTDOWN_PARAMETERS;

typedef struct
{
  DWORD Level;
  DWORD Flags;
} CSRSS_GET_SHUTDOWN_PARAMETERS, *PCSRSS_GET_SHUTDOWN_PARAMETERS;

typedef struct
{
  HANDLE ConsoleHandle;
  BOOL Unicode;
  DWORD Length;
  INPUT_RECORD* InputRecord;
} CSRSS_PEEK_CONSOLE_INPUT, *PCSRSS_PEEK_CONSOLE_INPUT;

typedef struct
{
  HANDLE ConsoleHandle;
  BOOL Unicode;
  COORD BufferSize;
  COORD BufferCoord;
  SMALL_RECT ReadRegion;
  CHAR_INFO* CharInfo;
} CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;

typedef struct
{
  HANDLE ConsoleHandle;
  BOOL Unicode;
  DWORD Length;
  INPUT_RECORD* InputRecord;
} CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -