2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Base API Server DLL
4 * FILE: subsystems/win/basesrv/vdm.h
5 * PURPOSE: VDM Definitions
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
14 /* DEFINITIONS ****************************************************************/
16 #define VDM_POLICY_KEY_NAME L"Software\\Policies\\Microsoft\\Windows\\AppCompat"
17 #define VDM_DISALLOWED_VALUE_NAME L"VDMDisallowed"
19 typedef struct _VDM_CONSOLE_RECORD
31 LIST_ENTRY DosListHead
;
32 } VDM_CONSOLE_RECORD
, *PVDM_CONSOLE_RECORD
;
34 typedef struct _VDM_DOS_RECORD
41 PVDM_COMMAND_INFO CommandInfo
;
42 } VDM_DOS_RECORD
, *PVDM_DOS_RECORD
;
44 /* FUNCTIONS ******************************************************************/
46 NTSTATUS NTAPI
BaseSrvGetConsoleRecord(HANDLE ConsoleHandle
, PVDM_CONSOLE_RECORD
*Record
);
47 NTSTATUS NTAPI
GetConsoleRecordBySessionId(ULONG TaskId
, PVDM_CONSOLE_RECORD
*Record
);
48 ULONG NTAPI
GetNextDosSesId(VOID
);
49 BOOLEAN NTAPI
BaseSrvIsVdmAllowed(VOID
);
50 NTSTATUS NTAPI
BaseSrvCreatePairWaitHandles(PHANDLE ServerEvent
, PHANDLE ClientEvent
);
51 VOID NTAPI
BaseSrvFreeVDMInfo(PVDM_COMMAND_INFO CommandInfo
);
52 VOID NTAPI
BaseSrvCleanupVDMResources(IN PCSR_PROCESS CsrProcess
);
53 BOOLEAN NTAPI
BaseSrvCopyCommand(PBASE_CHECK_VDM CheckVdmRequest
, PVDM_DOS_RECORD DosRecord
);
54 NTSTATUS NTAPI
BaseSrvFillCommandInfo(
55 PVDM_COMMAND_INFO CommandInfo
,
56 PBASE_GET_NEXT_VDM_COMMAND Message
58 VOID NTAPI
BaseInitializeVDM(VOID
);