From 3bb2ee8cd33d1e36ec53c65aa773762f67fd619b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Thu, 22 Aug 2013 16:10:34 +0000 Subject: [PATCH] [KERNEL32] - Move VDM-related definitions into a dedicated header. - Clean some code. svn path=/trunk/; revision=59792 --- reactos/dll/win32/kernel32/client/vdm.c | 4 +- reactos/dll/win32/kernel32/include/kernel32.h | 91 --------------- reactos/dll/win32/kernel32/include/vdm.h | 105 ++++++++++++++++++ reactos/dll/win32/kernel32/k32.h | 3 + 4 files changed, 110 insertions(+), 93 deletions(-) create mode 100644 reactos/dll/win32/kernel32/include/vdm.h diff --git a/reactos/dll/win32/kernel32/client/vdm.c b/reactos/dll/win32/kernel32/client/vdm.c index c51d31ccdbe..fe10262ae86 100644 --- a/reactos/dll/win32/kernel32/client/vdm.c +++ b/reactos/dll/win32/kernel32/client/vdm.c @@ -101,7 +101,7 @@ BaseUpdateVDMEntry(IN ULONG UpdateIndex, case VdmEntryUndo: { /* Tell the server how far we had gotten along */ - UpdateVdmEntry->iTask = (ULONG)*WaitHandle; + UpdateVdmEntry->iTask = HandleToUlong(*WaitHandle); UpdateVdmEntry->VDMCreationState = IndexInfo; break; } @@ -186,7 +186,7 @@ BaseCheckForVDM(IN HANDLE ProcessHandle, /* Call CSRSS */ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX, BasepGetVDMExitCode /* BasepCheckVDM */), + CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX, BasepGetVDMExitCode), sizeof(BASE_GET_VDM_EXIT_CODE)); if (!NT_SUCCESS(Status)) return FALSE; diff --git a/reactos/dll/win32/kernel32/include/kernel32.h b/reactos/dll/win32/kernel32/include/kernel32.h index 8f2e837a727..e2c836881b3 100644 --- a/reactos/dll/win32/kernel32/include/kernel32.h +++ b/reactos/dll/win32/kernel32/include/kernel32.h @@ -61,41 +61,6 @@ #define FIELD_OFFSET(type,fld) ((LONG)&(((type *)0)->fld)) #endif -// -// This stuff maybe should go in a vdm.h? -// -typedef enum _VDM_ENTRY_CODE -{ - VdmEntryUndo, - VdmEntryUpdateProcess, - VdmEntryUpdateControlCHandler -} VDM_ENTRY_CODE; - -// -// Undo States -// -#define VDM_UNDO_PARTIAL 0x01 -#define VDM_UNDO_FULL 0x02 -#define VDM_UNDO_REUSE 0x04 -#define VDM_UNDO_COMPLETED 0x08 - -// -// Binary Types to share with VDM -// -#define BINARY_TYPE_EXE 0x01 -#define BINARY_TYPE_COM 0x02 -#define BINARY_TYPE_PIF 0x03 -#define BINARY_TYPE_DOS 0x10 -#define BINARY_TYPE_SEPARATE_WOW 0x20 -#define BINARY_TYPE_WOW 0x40 -#define BINARY_TYPE_WOW_EX 0x80 - -// -// VDM States -// -#define VDM_NOT_LOADED 0x01 -#define VDM_NOT_READY 0x02 -#define VDM_READY 0x04 /* Undocumented CreateProcess flag */ #define STARTF_SHELLPRIVATE 0x400 @@ -366,31 +331,6 @@ IsShimInfrastructureDisabled( VOID ); -BOOL -NTAPI -BaseDestroyVDMEnvironment( - IN PANSI_STRING AnsiEnv, - IN PUNICODE_STRING UnicodeEnv -); - -BOOL -WINAPI -BaseGetVdmConfigInfo( - IN LPCWSTR CommandLineReserved, - IN ULONG DosSeqId, - IN ULONG BinaryType, - IN PUNICODE_STRING CmdLineString, - OUT PULONG VdmSize -); - -BOOL -NTAPI -BaseCreateVDMEnvironment( - IN PWCHAR lpEnvironment, - IN PANSI_STRING AnsiEnv, - IN PUNICODE_STRING UnicodeEnv -); - VOID WINAPI InitCommandLines(VOID); @@ -468,15 +408,6 @@ BasepConfigureAppCertDlls( extern LIST_ENTRY BasepAppCertDllsList; extern RTL_CRITICAL_SECTION gcsAppCert; -BOOL -WINAPI -BaseUpdateVDMEntry( - IN ULONG UpdateIndex, - IN OUT PHANDLE WaitHandle, - IN ULONG IndexInfo, - IN ULONG BinaryType -); - VOID WINAPI BaseMarkFileForDelete( @@ -484,28 +415,6 @@ BaseMarkFileForDelete( IN ULONG FileAttributes ); -BOOL -WINAPI -BaseCheckForVDM( - IN HANDLE ProcessHandle, - OUT LPDWORD ExitCode -); - -BOOL -WINAPI -BaseCheckVDM( - IN ULONG BinaryType, - IN PCWCH ApplicationName, - IN PCWCH CommandLine, - IN PCWCH CurrentDirectory, - IN PANSI_STRING AnsiEnvironment, - IN PCSR_API_MESSAGE ApiMessage, - IN OUT PULONG iTask, - IN DWORD CreationFlags, - IN LPSTARTUPINFOW StartupInfo, - IN HANDLE hUserToken OPTIONAL -); - /* FIXME: This is EXPORTED! It should go in an external kernel32.h header */ VOID diff --git a/reactos/dll/win32/kernel32/include/vdm.h b/reactos/dll/win32/kernel32/include/vdm.h new file mode 100644 index 00000000000..b08cfb3aa74 --- /dev/null +++ b/reactos/dll/win32/kernel32/include/vdm.h @@ -0,0 +1,105 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS System Libraries + * FILE: dll/win32/kernel32/include/vdm.h + * PURPOSE: Virtual DOS Machines (VDM) Support Definitions + * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) + */ + +#pragma once + +/* CONSTANTS ******************************************************************/ + +typedef enum _VDM_ENTRY_CODE +{ + VdmEntryUndo, + VdmEntryUpdateProcess, + VdmEntryUpdateControlCHandler +} VDM_ENTRY_CODE; + +// +// Undo States +// +#define VDM_UNDO_PARTIAL 0x01 +#define VDM_UNDO_FULL 0x02 +#define VDM_UNDO_REUSE 0x04 +#define VDM_UNDO_COMPLETED 0x08 + +// +// Binary Types to share with VDM +// +#define BINARY_TYPE_EXE 0x01 +#define BINARY_TYPE_COM 0x02 +#define BINARY_TYPE_PIF 0x03 +#define BINARY_TYPE_DOS 0x10 +#define BINARY_TYPE_SEPARATE_WOW 0x20 +#define BINARY_TYPE_WOW 0x40 +#define BINARY_TYPE_WOW_EX 0x80 + +// +// VDM States +// +#define VDM_NOT_LOADED 0x01 +#define VDM_NOT_READY 0x02 +#define VDM_READY 0x04 + + +/* FUNCTION PROTOTYPES ********************************************************/ + +BOOL +NTAPI +BaseDestroyVDMEnvironment( + IN PANSI_STRING AnsiEnv, + IN PUNICODE_STRING UnicodeEnv +); + +BOOL +WINAPI +BaseGetVdmConfigInfo( + IN LPCWSTR CommandLineReserved, + IN ULONG DosSeqId, + IN ULONG BinaryType, + IN PUNICODE_STRING CmdLineString, + OUT PULONG VdmSize +); + +BOOL +NTAPI +BaseCreateVDMEnvironment( + IN PWCHAR lpEnvironment, + IN PANSI_STRING AnsiEnv, + IN PUNICODE_STRING UnicodeEnv +); + +BOOL +WINAPI +BaseUpdateVDMEntry( + IN ULONG UpdateIndex, + IN OUT PHANDLE WaitHandle, + IN ULONG IndexInfo, + IN ULONG BinaryType +); + +BOOL +WINAPI +BaseCheckForVDM( + IN HANDLE ProcessHandle, + OUT LPDWORD ExitCode +); + +BOOL +WINAPI +BaseCheckVDM( + IN ULONG BinaryType, + IN PCWCH ApplicationName, + IN PCWCH CommandLine, + IN PCWCH CurrentDirectory, + IN PANSI_STRING AnsiEnvironment, + IN PCSR_API_MESSAGE ApiMessage, + IN OUT PULONG iTask, + IN DWORD CreationFlags, + IN LPSTARTUPINFOW StartupInfo, + IN HANDLE hUserToken OPTIONAL +); + +/* EOF */ diff --git a/reactos/dll/win32/kernel32/k32.h b/reactos/dll/win32/kernel32/k32.h index fe122ae7393..a293de38707 100644 --- a/reactos/dll/win32/kernel32/k32.h +++ b/reactos/dll/win32/kernel32/k32.h @@ -72,4 +72,7 @@ /* Console API Client Definitions */ #include "include/console.h" +/* Virtual DOS Machines (VDM) Support Definitions */ +#include "include/vdm.h" + #endif