6 #define kernel32file 200
7 #define kernel32ver 201
10 #define kernel32session 204
12 #define TRACE(fmt, ...) TRACE__(gDebugChannel, fmt, ##__VA_ARGS__)
13 #define WARN(fmt, ...) WARN__(gDebugChannel, fmt, ##__VA_ARGS__)
14 #define FIXME(fmt, ...) WARN__(gDebugChannel, fmt,## __VA_ARGS__)
15 #define ERR(fmt, ...) ERR__(gDebugChannel, fmt, ##__VA_ARGS__)
22 #include "wine/unicode.h"
25 #define BINARY_UNKNOWN (0)
26 #define BINARY_PE_EXE32 (1)
27 #define BINARY_PE_DLL32 (2)
28 #define BINARY_PE_EXE64 (3)
29 #define BINARY_PE_DLL64 (4)
30 #define BINARY_WIN16 (5)
31 #define BINARY_OS216 (6)
32 #define BINARY_DOS (7)
33 #define BINARY_UNIX_EXE (8)
34 #define BINARY_UNIX_LIB (9)
36 #define MAGIC(c1,c2,c3,c4) ((c1) + ((c2)<<8) + ((c3)<<16) + ((c4)<<24))
38 #define MAGIC_HEAP MAGIC( 'H','E','A','P' )
40 #define ROUNDUP(a,b) ((((a)+(b)-1)/(b))*(b))
41 #define ROUNDDOWN(a,b) (((a)/(b))*(b))
43 #define ROUND_DOWN(n, align) \
44 (((ULONG)n) & ~((align) - 1l))
46 #define ROUND_UP(n, align) \
47 ROUND_DOWN(((ULONG)n) + (align) - 1, (align))
50 #define FIELD_OFFSET(type,fld) ((LONG)&(((type *)0)->fld))
53 #define IsConsoleHandle(h) \
54 (((((ULONG_PTR)h) & 0x10000003) == 0x3) ? TRUE : FALSE)
56 #define HANDLE_DETACHED_PROCESS (HANDLE)-2
57 #define HANDLE_CREATE_NEW_CONSOLE (HANDLE)-3
58 #define HANDLE_CREATE_NO_WINDOW (HANDLE)-4
60 /* Undocumented CreateProcess flag */
61 #define STARTF_SHELLPRIVATE 0x400
63 #define SetLastErrorByStatus(x) RtlSetLastWin32ErrorAndNtStatusFromNtStatus((x))
64 #define GetLastError() NtCurrentTeb()->LastErrorValue
65 #define SetLastError(x) NtCurrentTeb()->LastErrorValue = (x)
67 typedef struct _CODEPAGE_ENTRY
73 CPTABLEINFO CodePageTable
;
74 } CODEPAGE_ENTRY
, *PCODEPAGE_ENTRY
;
78 (*WaitForInputIdleType
)(
80 DWORD dwMilliseconds
);
82 /* GLOBAL VARIABLES **********************************************************/
84 extern BOOL bIsFileApiAnsi
;
85 extern HANDLE hProcessHeap
;
86 extern HANDLE hBaseDir
;
87 extern HMODULE hCurrentModule
;
89 extern RTL_CRITICAL_SECTION DllLock
;
91 extern UNICODE_STRING DllDirectory
;
93 extern LPTOP_LEVEL_EXCEPTION_FILTER GlobalTopLevelExceptionFilter
;
95 /* FUNCTION PROTOTYPES *******************************************************/
97 BOOL WINAPI
VerifyConsoleIoHandle(HANDLE Handle
);
99 BOOL WINAPI
CloseConsoleHandle(HANDLE Handle
);
102 GetConsoleInputWaitHandle (VOID
);
104 HANDLE WINAPI
OpenConsoleW (LPCWSTR wsName
,
105 DWORD dwDesiredAccess
,
109 BOOL WINAPI
SetConsoleInputExeNameW(LPCWSTR lpInputExeName
);
113 HANDLE FASTCALL
TranslateStdHandle(HANDLE hHandle
);
115 PWCHAR
FilenameA2W(LPCSTR NameA
, BOOL alloc
);
116 DWORD
FilenameW2A_N(LPSTR dest
, INT destlen
, LPCWSTR src
, INT srclen
);
118 DWORD
FilenameW2A_FitOrFail(LPSTR DestA
, INT destLen
, LPCWSTR SourceW
, INT sourceLen
);
119 DWORD
FilenameU2A_FitOrFail(LPSTR DestA
, INT destLen
, PUNICODE_STRING SourceU
);
121 #define HeapAlloc RtlAllocateHeap
122 #define HeapReAlloc RtlReAllocateHeap
123 #define HeapFree RtlFreeHeap
124 #define _lread (_readfun)_hread
128 BasepConvertObjectAttributes(OUT POBJECT_ATTRIBUTES ObjectAttributes
,
129 IN PSECURITY_ATTRIBUTES SecurityAttributes OPTIONAL
,
130 IN PUNICODE_STRING ObjectName
);
134 BasepCreateStack(HANDLE hProcess
,
137 PINITIAL_TEB InitialTeb
);
141 BasepInitializeContext(IN PCONTEXT Context
,
143 IN PVOID StartAddress
,
144 IN PVOID StackAddress
,
145 IN ULONG ContextType
);
149 BaseThreadStartupThunk(VOID
);
153 BaseProcessStartThunk(VOID
);
158 BaseThreadStartup(LPTHREAD_START_ROUTINE lpStartAddress
,
163 BasepFreeStack(HANDLE hProcess
,
164 PINITIAL_TEB InitialTeb
);
169 BaseFiberStartup(VOID
);
171 typedef UINT (WINAPI
*PPROCESS_START_ROUTINE
)(VOID
);
175 BaseProcessStartup(PPROCESS_START_ROUTINE lpStartAddress
);
179 BasepCheckRealTimePrivilege(VOID
);
183 BasepAnsiStringToHeapUnicodeString(IN LPCSTR AnsiString
,
184 OUT LPWSTR
* UnicodeString
);
188 Basep8BitStringToCachedUnicodeString(IN LPCSTR String
);
192 Basep8BitStringToLiveUnicodeString(OUT PUNICODE_STRING UnicodeString
,
197 Basep8BitStringToHeapUnicodeString(OUT PUNICODE_STRING UnicodeString
,
200 typedef NTSTATUS (NTAPI
*PRTL_CONVERT_STRING
)(IN PUNICODE_STRING UnicodeString
,
201 IN PANSI_STRING AnsiString
,
202 IN BOOLEAN AllocateMemory
);
204 extern PRTL_CONVERT_STRING Basep8BitStringToUnicodeString
;
208 BasepMapFile(IN LPCWSTR lpApplicationName
,
209 OUT PHANDLE hSection
,
210 IN PUNICODE_STRING ApplicationName
);
212 PCODEPAGE_ENTRY FASTCALL
213 IntGetCodePageEntry(UINT CodePage
);
216 GetDllLoadPath(LPCWSTR lpModule
);
220 InitCommandLines(VOID
);