52 lines
2 KiB
C++
52 lines
2 KiB
C++
// --------------------------------------------------------------------------
|
|
// Module Name: Compatibility.h
|
|
//
|
|
// Copyright (c) 2000, Microsoft Corporation
|
|
//
|
|
// Module to handle compatibility problems in general.
|
|
//
|
|
// History: 2000-08-03 vtan created
|
|
// --------------------------------------------------------------------------
|
|
|
|
#ifndef _Compatibility_
|
|
#define _Compatibility_
|
|
|
|
#include "DynamicArray.h"
|
|
#include "KernelResources.h"
|
|
|
|
// --------------------------------------------------------------------------
|
|
// CCompatibility
|
|
//
|
|
// Purpose: This class implements compatibility and solutions to
|
|
// compatibility problems.
|
|
//
|
|
// History: 2000-08-08 vtan created
|
|
// --------------------------------------------------------------------------
|
|
|
|
class CCompatibility
|
|
{
|
|
private:
|
|
typedef bool (CALLBACK * PFNENUMSESSIONPROCESSESPROC) (DWORD dwProcessID, void *pV);
|
|
public:
|
|
static bool HasEnoughMemoryForNewSession (void);
|
|
static void DropSessionProcessesWorkingSets (void);
|
|
static NTSTATUS TerminateNonCompliantApplications (void);
|
|
static void MinimizeWindowsOnDisconnect (void);
|
|
static void RestoreWindowsOnReconnect (void);
|
|
|
|
static NTSTATUS StaticInitialize (void);
|
|
static NTSTATUS StaticTerminate (void);
|
|
private:
|
|
static NTSTATUS ConnectToServer (void);
|
|
static NTSTATUS RequestSwitchUser (void);
|
|
static bool CALLBACK CB_DropSessionProcessesWorkingSetsProc (DWORD dwProcessID, void *pV);
|
|
static bool EnumSessionProcesses (DWORD dwSessionID, PFNENUMSESSIONPROCESSESPROC pfnCallback, void *pV);
|
|
static DWORD WINAPI CB_MinimizeWindowsWorkItem (void *pV);
|
|
static DWORD WINAPI CB_RestoreWindowsWorkItem (void *pV);
|
|
private:
|
|
static HANDLE s_hPort;
|
|
};
|
|
|
|
#endif /* _Compatibility_ */
|
|
|