ReactOS  0.4.14-dev-52-g6116262
consrv.h File Reference
#include "../winsrv.h"
#include <strsafe.h>
#include <winnls.h>
#include <wincon.h>
#include <ndk/mmfuncs.h>
#include <win/conmsg.h>
#include "heap.h"
#include "include/conio.h"
#include "include/console.h"
#include "include/settings.h"
#include "include/term.h"
#include "console.h"
#include "conoutput.h"
#include "handle.h"
#include "lineinput.h"
Include dependency graph for consrv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _CONSOLE_PROCESS_DATA
 
struct  ConsoleInput_t
 

Macros

#define WIN32_NO_STATUS
 
#define _INC_WINDOWS
 
#define COM_NO_WINDOWS_H
 
#define NTOS_MODE_USER
 
#define ConsoleGetPerProcessData(Process)   ((PCONSOLE_PROCESS_DATA)((Process)->ServerData[CONSRV_SERVERDLL_INDEX]))
 

Typedefs

typedef struct _CONSOLE_PROCESS_DATA CONSOLE_PROCESS_DATA
 
typedef struct _CONSOLE_PROCESS_DATAPCONSOLE_PROCESS_DATA
 
typedef struct ConsoleInput_t ConsoleInput
 

Functions

ULONG NTAPI ConsoleClientShutdown (IN PCSR_PROCESS CsrProcess, IN ULONG Flags, IN BOOLEAN FirstPhase)
 

Variables

HINSTANCE ConSrvDllInstance
 

Macro Definition Documentation

◆ _INC_WINDOWS

#define _INC_WINDOWS

Definition at line 19 of file consrv.h.

◆ COM_NO_WINDOWS_H

#define COM_NO_WINDOWS_H

Definition at line 20 of file consrv.h.

◆ ConsoleGetPerProcessData

#define ConsoleGetPerProcessData (   Process)    ((PCONSOLE_PROCESS_DATA)((Process)->ServerData[CONSRV_SERVERDLL_INDEX]))

Definition at line 37 of file consrv.h.

◆ NTOS_MODE_USER

#define NTOS_MODE_USER

Definition at line 25 of file consrv.h.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 18 of file consrv.h.

Typedef Documentation

◆ CONSOLE_PROCESS_DATA

◆ ConsoleInput

◆ PCONSOLE_PROCESS_DATA

Function Documentation

◆ ConsoleClientShutdown()

ULONG NTAPI ConsoleClientShutdown ( IN PCSR_PROCESS  CsrProcess,
IN ULONG  Flags,
IN BOOLEAN  FirstPhase 
)

Definition at line 73 of file shutdown.c.

76 {
77  PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrProcess);
78 
79  /* Do not kill system processes when a user is logging off */
80  if ((Flags & EWX_SHUTDOWN) == EWX_LOGOFF &&
81  (CsrProcess->ShutdownFlags & (CsrShutdownSystem | CsrShutdownOther)))
82  {
83  DPRINT("Do not kill a system process in a logoff request!\n");
85  }
86 
87  /* Is it a console process? */
88  if ( ProcessData->ConsoleHandle != NULL ||
89  ProcessData->HandleTable != NULL )
90  {
91  NotifyConsoleProcessForShutdown(CsrProcess, ProcessData, Flags);
92 
93  /* We are done with the process itself */
94  CsrDereferenceProcess(CsrProcess);
95  return CsrShutdownCsrProcess;
96  }
97  else
98  {
99  DPRINT("ConsoleClientShutdown(0x%p, 0x%x, %s) - Non-console process [0x%x, 0x%x]\n",
100  CsrProcess, Flags, FirstPhase ? "FirstPhase" : "LastPhase",
101  CsrProcess->ClientId.UniqueProcess, CsrProcess->ClientId.UniqueThread);
102 
103  /* On first pass, let the gui server terminate all the processes that it owns */
104  if (FirstPhase) return CsrShutdownNonCsrProcess;
105 
106  /* Use the generic handler since this isn't a gui process */
107  return NonConsoleProcessShutdown(CsrProcess, Flags);
108  }
109 
111 }
HANDLE ConsoleHandle
Definition: consrv.h:45
VOID NTAPI CsrDereferenceProcess(IN PCSR_PROCESS CsrProcess)
Definition: procsup.c:690
#define EWX_LOGOFF
Definition: winuser.h:631
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define EWX_SHUTDOWN
Definition: winuser.h:634
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
static void NotifyConsoleProcessForShutdown(IN PCSR_PROCESS CsrProcess, IN PCONSOLE_PROCESS_DATA ProcessData, IN ULONG Flags)
Definition: shutdown.c:20
#define ConsoleGetPerProcessData(Process)
Definition: consrv.h:37
ULONG NTAPI NonConsoleProcessShutdown(IN PCSR_PROCESS Process, IN ULONG Flags)
Definition: shutdown.c:44
struct _CONSOLE_IO_HANDLE * HandleTable
Definition: consrv.h:50

Referenced by CSR_SERVER_DLL_INIT().

Variable Documentation

◆ ConSrvDllInstance