[KERNEL32]
[reactos.git] / dll / win32 / kernel32 / include / kernel32.h
index e343e92..dad3f12 100644 (file)
@@ -8,6 +8,9 @@
 #define actctx                  202
 #define resource                203
 #define kernel32session         204
+#define comm                    205
+#define profile                 206
+#define nls                     207
 
 
 #if DBG
@@ -27,6 +30,7 @@
 
 #define debugstr_a
 #define debugstr_w
+#define debugstr_wn
 #define wine_dbgstr_w
 #define debugstr_guid
 
 #define FIELD_OFFSET(type,fld) ((LONG)&(((type *)0)->fld))
 #endif
 
-#define IsConsoleHandle(h) \
-  (((((ULONG_PTR)h) & 0x10000003) == 0x3) ? TRUE : FALSE)
-
-#define HANDLE_DETACHED_PROCESS    (HANDLE)-2
-#define HANDLE_CREATE_NEW_CONSOLE  (HANDLE)-3
-#define HANDLE_CREATE_NO_WINDOW    (HANDLE)-4
-
-//
-// 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
+#define __TRY _SEH2_TRY
+#define __EXCEPT_PAGE_FAULT _SEH2_EXCEPT(_SEH2_GetExceptionCode() == STATUS_ACCESS_VIOLATION)
+#define __ENDTRY _SEH2_END
 
 /* Undocumented CreateProcess flag */
 #define STARTF_SHELLPRIVATE         0x400
 
 typedef struct _CODEPAGE_ENTRY
 {
-   LIST_ENTRY Entry;
-   UINT CodePage;
-   HANDLE SectionHandle;
-   PBYTE SectionMapping;
-   CPTABLEINFO CodePageTable;
+    LIST_ENTRY Entry;
+    UINT CodePage;
+    HANDLE SectionHandle;
+    PBYTE SectionMapping;
+    CPTABLEINFO CodePageTable;
 } CODEPAGE_ENTRY, *PCODEPAGE_ENTRY;
 
-typedef struct tagLOADPARMS32 {
-  LPSTR lpEnvAddress;
-  LPSTR lpCmdLine;
-  WORD  wMagicValue;
-  WORD  wCmdShow;
-  DWORD dwReserved;
+typedef struct tagLOADPARMS32
+{
+    LPSTR lpEnvAddress;
+    LPSTR lpCmdLine;
+    WORD  wMagicValue;
+    WORD  wCmdShow;
+    DWORD dwReserved;
 } LOADPARMS32;
 
 typedef enum _BASE_SEARCH_PATH_TYPE
@@ -143,11 +109,18 @@ typedef enum _BASE_CURRENT_DIR_PLACEMENT
     BaseCurrentDirPlacementMax
 } BASE_CURRENT_DIR_PLACEMENT;
 
+typedef struct _BASEP_ACTCTX_BLOCK
+{
+    ULONG Flags;
+    PVOID ActivationContext;
+    PVOID CompletionContext;
+    LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine;
+} BASEP_ACTCTX_BLOCK, *PBASEP_ACTCTX_BLOCK;
+
 #define BASEP_GET_MODULE_HANDLE_EX_PARAMETER_VALIDATION_ERROR    1
 #define BASEP_GET_MODULE_HANDLE_EX_PARAMETER_VALIDATION_SUCCESS  2
 #define BASEP_GET_MODULE_HANDLE_EX_PARAMETER_VALIDATION_CONTINUE 3
 
-
 extern PBASE_STATIC_SERVER_DATA BaseStaticServerData;
 
 typedef
@@ -156,9 +129,7 @@ DWORD
     HANDLE hProcess,
     DWORD dwMilliseconds);
 
-
-extern BOOLEAN InWindows;
-extern WaitForInputIdleType lpfnGlobalRegisterWaitForInputIdle;
+extern WaitForInputIdleType UserWaitForInputIdleRoutine;
 
 /* GLOBAL VARIABLES **********************************************************/
 
@@ -184,24 +155,8 @@ VOID
 NTAPI
 BaseDllInitializeMemoryManager(VOID);
 
-BOOL WINAPI VerifyConsoleIoHandle(HANDLE Handle);
-
-BOOL WINAPI CloseConsoleHandle(HANDLE Handle);
-
-HANDLE WINAPI
-GetConsoleInputWaitHandle (VOID);
-
-HANDLE WINAPI OpenConsoleW (LPCWSTR wsName,
-                            DWORD  dwDesiredAccess,
-                            BOOL   bInheritHandle,
-                            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);
 
@@ -211,7 +166,7 @@ DWORD FilenameU2A_FitOrFail(LPSTR  DestA, INT destLen, PUNICODE_STRING SourceU);
 #define HeapAlloc RtlAllocateHeap
 #define HeapReAlloc RtlReAllocateHeap
 #define HeapFree RtlFreeHeap
-#define _lread  (_readfun)_hread
+#define _lread(a, b, c)  (long)(_hread(a, b, (long)c))
 
 PLARGE_INTEGER
 WINAPI
@@ -247,6 +202,21 @@ VOID
 WINAPI
 BaseProcessStartThunk(VOID);
 
+VOID
+NTAPI
+BasepFreeActivationContextActivationBlock(
+    IN PBASEP_ACTCTX_BLOCK ActivationBlock
+);
+
+NTSTATUS
+NTAPI
+BasepAllocateActivationContextActivationBlock(
+    IN DWORD Flags,
+    IN PVOID CompletionRoutine,
+    IN PVOID CompletionContext,
+    OUT PBASEP_ACTCTX_BLOCK *ActivationBlock
+);
+
 __declspec(noreturn)
 VOID
 WINAPI
@@ -368,31 +338,6 @@ IsShimInfrastructureDisabled(
     VOID
 );
 
-BOOL
-NTAPI
-BaseDestroyVDMEnvironment(
-    IN PANSI_STRING AnsiEnv,
-    IN PUNICODE_STRING UnicodeEnv
-);
-
-BOOL
-WINAPI
-BaseGetVdmConfigInfo(
-    IN LPCWSTR Reserved,
-    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);
@@ -404,13 +349,6 @@ BaseSetLastNTError(IN NTSTATUS Status);
 /* FIXME */
 WCHAR WINAPI RtlAnsiCharToUnicodeChar(LPSTR *);
 
-HANDLE
-WINAPI
-DuplicateConsoleHandle(HANDLE hConsole,
-                       DWORD dwDesiredAccess,
-                       BOOL    bInheritHandle,
-                       DWORD dwOptions);
-
 VOID
 NTAPI
 BasepLocateExeLdrEntry(IN PLDR_DATA_TABLE_ENTRY Entry,
@@ -419,13 +357,13 @@ BasepLocateExeLdrEntry(IN PLDR_DATA_TABLE_ENTRY Entry,
 
 typedef NTSTATUS
 (NTAPI *PBASEP_APPCERT_PLUGIN_FUNC)(
-    IN PCHAR ApplicationName,
+    IN LPWSTR ApplicationName,
     IN ULONG CertFlag
 );
 
 typedef NTSTATUS
 (NTAPI *PBASEP_APPCERT_EMBEDDED_FUNC)(
-    IN PCHAR ApplicationName
+    IN LPWSTR ApplicationName
 );
 
 typedef NTSTATUS
@@ -477,15 +415,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(
@@ -493,6 +422,7 @@ BaseMarkFileForDelete(
     IN ULONG FileAttributes
 );
 
+
 /* FIXME: This is EXPORTED! It should go in an external kernel32.h header */
 VOID
 WINAPI
@@ -500,3 +430,14 @@ BasepFreeAppCompatData(
     IN PVOID AppCompatData,
     IN PVOID AppCompatSxsData
 );
+
+NTSTATUS
+WINAPI
+BasepCheckWinSaferRestrictions(
+    IN HANDLE UserToken,
+    IN LPWSTR ApplicationName,
+    IN HANDLE FileHandle,
+    OUT PBOOLEAN InJob,
+    OUT PHANDLE NewToken,
+    OUT PHANDLE JobHandle
+);