-#ifndef _KERNEL32_INCLUDE_KERNEL32_H
-#define _KERNEL32_INCLUDE_KERNEL32_H
+#pragma once
#include "baseheap.h"
#define ROUNDUP(a,b) ((((a)+(b)-1)/(b))*(b))
#define ROUNDDOWN(a,b) (((a)/(b))*(b))
+#define ROUND_DOWN(n, align) \
+ (((ULONG)n) & ~((align) - 1l))
+
+#define ROUND_UP(n, align) \
+ ROUND_DOWN(((ULONG)n) + (align) - 1, (align))
+
#ifndef FIELD_OFFSET
#define FIELD_OFFSET(type,fld) ((LONG)&(((type *)0)->fld))
#endif
#define IsConsoleHandle(h) \
- (((((ULONG)h) & 0x10000003) == 0x3) ? TRUE : FALSE)
+ (((((ULONG_PTR)h) & 0x10000003) == 0x3) ? TRUE : FALSE)
#define HANDLE_DETACHED_PROCESS (HANDLE)-2
#define HANDLE_CREATE_NEW_CONSOLE (HANDLE)-3
#define SetLastErrorByStatus(__S__) \
((void)SetLastError(RtlNtStatusToDosError(__S__)))
+typedef struct _CODEPAGE_ENTRY
+{
+ LIST_ENTRY Entry;
+ UINT CodePage;
+ HANDLE SectionHandle;
+ PBYTE SectionMapping;
+ CPTABLEINFO CodePageTable;
+} CODEPAGE_ENTRY, *PCODEPAGE_ENTRY;
+
typedef
DWORD
(*WaitForInputIdleType)(
/* FUNCTION PROTOTYPES *******************************************************/
-BOOL STDCALL VerifyConsoleIoHandle(HANDLE Handle);
+BOOL WINAPI VerifyConsoleIoHandle(HANDLE Handle);
-BOOL STDCALL CloseConsoleHandle(HANDLE Handle);
+BOOL WINAPI CloseConsoleHandle(HANDLE Handle);
-HANDLE STDCALL
+HANDLE WINAPI
GetConsoleInputWaitHandle (VOID);
-HANDLE STDCALL OpenConsoleW (LPCWSTR wsName,
+HANDLE WINAPI OpenConsoleW (LPCWSTR wsName,
DWORD dwDesiredAccess,
BOOL bInheritHandle,
- DWORD dwCreationDistribution);
+ DWORD dwShareMode);
+
+BOOL WINAPI SetConsoleInputExeNameW(LPCWSTR lpInputExeName);
PTEB GetTeb(VOID);
+HANDLE FASTCALL TranslateStdHandle(HANDLE hHandle);
+
PWCHAR FilenameA2W(LPCSTR NameA, BOOL alloc);
+DWORD FilenameW2A_N(LPSTR dest, INT destlen, LPCWSTR src, INT srclen);
DWORD FilenameW2A_FitOrFail(LPSTR DestA, INT destLen, LPCWSTR SourceW, INT sourceLen);
DWORD FilenameU2A_FitOrFail(LPSTR DestA, INT destLen, PUNICODE_STRING SourceU);
#define HeapFree RtlFreeHeap
POBJECT_ATTRIBUTES
-STDCALL
+WINAPI
BasepConvertObjectAttributes(OUT POBJECT_ATTRIBUTES ObjectAttributes,
IN PSECURITY_ATTRIBUTES SecurityAttributes OPTIONAL,
IN PUNICODE_STRING ObjectName);
NTSTATUS
-STDCALL
+WINAPI
BasepCreateStack(HANDLE hProcess,
- ULONG StackReserve,
- ULONG StackCommit,
+ SIZE_T StackReserve,
+ SIZE_T StackCommit,
PINITIAL_TEB InitialTeb);
VOID
-STDCALL
+WINAPI
BasepInitializeContext(IN PCONTEXT Context,
IN PVOID Parameter,
IN PVOID StartAddress,
IN ULONG ContextType);
VOID
-STDCALL
+WINAPI
BaseThreadStartupThunk(VOID);
VOID
-STDCALL
+WINAPI
BaseProcessStartThunk(VOID);
__declspec(noreturn)
VOID
-STDCALL
+WINAPI
BaseThreadStartup(LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter);
VOID
-STDCALL
+WINAPI
BasepFreeStack(HANDLE hProcess,
PINITIAL_TEB InitialTeb);
WINAPI
BaseFiberStartup(VOID);
-typedef UINT (STDCALL *PPROCESS_START_ROUTINE)(VOID);
+typedef UINT (WINAPI *PPROCESS_START_ROUTINE)(VOID);
VOID
-STDCALL
+WINAPI
BaseProcessStartup(PPROCESS_START_ROUTINE lpStartAddress);
BOOLEAN
-STDCALL
+WINAPI
BasepCheckRealTimePrivilege(VOID);
VOID
-STDCALL
+WINAPI
BasepAnsiStringToHeapUnicodeString(IN LPCSTR AnsiString,
OUT LPWSTR* UnicodeString);
PUNICODE_STRING
-STDCALL
+WINAPI
Basep8BitStringToCachedUnicodeString(IN LPCSTR String);
NTSTATUS
-STDCALL
+WINAPI
Basep8BitStringToLiveUnicodeString(OUT PUNICODE_STRING UnicodeString,
IN LPCSTR String);
NTSTATUS
-STDCALL
+WINAPI
Basep8BitStringToHeapUnicodeString(OUT PUNICODE_STRING UnicodeString,
IN LPCSTR String);
extern PRTL_CONVERT_STRING Basep8BitStringToUnicodeString;
NTSTATUS
-STDCALL
+WINAPI
BasepMapFile(IN LPCWSTR lpApplicationName,
OUT PHANDLE hSection,
IN PUNICODE_STRING ApplicationName);
-#endif /* ndef _KERNEL32_INCLUDE_KERNEL32_H */
+PCODEPAGE_ENTRY FASTCALL
+IntGetCodePageEntry(UINT CodePage);
+
+LPWSTR
+GetDllLoadPath(LPCWSTR lpModule);
+VOID
+WINAPI
+InitCommandLines(VOID);