Author: ion
Date: Wed Jul 20 14:46:15 2011
New Revision: 52736

URL: http://svn.reactos.org/svn/reactos?rev=52736&view=rev
Log:
[PSDK]: Add missing QUOTA_LIMITS_EX.
[NDK]: Fix certain SxS functions.
[RTL]: "Implement" RtlActivateActivationContextEx which lets you specify a TEB. 
RtlActivateActivationContext uses the current TEB. NOTE: All these functions 
are broken because they copy-paste Win32 wine code into NT Native functions 
(with different parameters/structures).
[NDK]: Fix pstypes.h -- it was a #define mess, and worked by luck because we 
are a < Vista OS.
[NDK]: Add RtlInitEmptyAnsiString.

Modified:
    trunk/reactos/include/ndk/pstypes.h
    trunk/reactos/include/ndk/rtlfuncs.h
    trunk/reactos/include/ndk/rtltypes.h
    trunk/reactos/include/psdk/winnt.h
    trunk/reactos/lib/rtl/actctx.c

Modified: trunk/reactos/include/ndk/pstypes.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/pstypes.h?rev=52736&r1=52735&r2=52736&view=diff
==============================================================================
--- trunk/reactos/include/ndk/pstypes.h [iso-8859-1] (original)
+++ trunk/reactos/include/ndk/pstypes.h [iso-8859-1] Wed Jul 20 14:46:15 2011
@@ -117,7 +117,6 @@
 #define PSP_LONG_QUANTUMS                       16
 
 #ifndef NTOS_MODE_USER
-
 //
 // Thread Access Types
 //
@@ -149,6 +148,7 @@
 #define PROCESS_ALL_ACCESS                      (STANDARD_RIGHTS_REQUIRED | \
                                                  SYNCHRONIZE | \
                                                  0xFFF)
+#endif
 
 //
 // Thread Base Priorities
@@ -162,7 +162,6 @@
 // TLS Slots
 //
 #define TLS_MINIMUM_AVAILABLE                   64
-#endif
 
 //
 // Job Access Types
@@ -194,7 +193,6 @@
 #define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK    0x1000
 #define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE      0x2000
 
-
 //
 // Cross Thread Flags
 //
@@ -223,9 +221,7 @@
 #define STA_LPC_EXIT_THREAD_CALLED_BIT          0x2
 #define STA_ADDRESS_SPACE_OWNER_BIT             0x4
 #define STA_OWNS_WORKING_SET_BITS               0x1F8
-#endif
-
-#define TLS_EXPANSION_SLOTS                     1024
+
 //
 // Process Flags
 //
@@ -261,8 +257,22 @@
 // Vista Process Flags
 //
 #define PSF2_PROTECTED_BIT                      0x800
+#endif
+
+//
+// TLS/FLS Defines
+//
+#define TLS_EXPANSION_SLOTS                     1024
 
 #ifdef NTOS_MODE_USER
+//
+// Thread Native Base Priorities
+//
+#define LOW_PRIORITY                            0
+#define LOW_REALTIME_PRIORITY                   16
+#define HIGH_PRIORITY                           31
+#define MAXIMUM_PRIORITY                        32
+
 //
 // Current Process/Thread built-in 'special' handles
 //

Modified: trunk/reactos/include/ndk/rtlfuncs.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/rtlfuncs.h?rev=52736&r1=52735&r2=52736&view=diff
==============================================================================
--- trunk/reactos/include/ndk/rtlfuncs.h [iso-8859-1] (original)
+++ trunk/reactos/include/ndk/rtlfuncs.h [iso-8859-1] Wed Jul 20 14:46:15 2011
@@ -171,6 +171,17 @@
     UnicodeString->MaximumLength = BufferSize;
     UnicodeString->Buffer = Buffer;
 }
+    
+FORCEINLINE
+VOID
+RtlInitEmptyAnsiString(OUT PANSI_STRING AnsiString,
+                       IN PSTR Buffer,
+                       IN USHORT BufferSize)
+{
+    AnsiString->Length = 0;
+    AnsiString->MaximumLength = BufferSize;
+    AnsiString->Buffer = Buffer;
+}
 
 //
 // LUID Macros
@@ -3046,12 +3057,21 @@
 // Activation Context Functions
 //
 #ifdef NTOS_MODE_USER
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlActivateActivationContextEx(
+    IN ULONG Flags,
+    IN PTEB Teb,
+    IN PVOID Context,
+    IN PULONG_PTR Cookie
+);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 RtlActivateActivationContext(
-    IN ULONG Unknown,
+    IN ULONG Flags,
     IN HANDLE Handle,
     OUT PULONG_PTR Cookie
 );
@@ -3062,7 +3082,6 @@
 RtlAddRefActivationContext(
     PVOID Context
 );
-
 
 NTSYSAPI
 PRTL_ACTIVATION_CONTEXT_STACK_FRAME

Modified: trunk/reactos/include/ndk/rtltypes.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/rtltypes.h?rev=52736&r1=52735&r2=52736&view=diff
==============================================================================
--- trunk/reactos/include/ndk/rtltypes.h [iso-8859-1] (original)
+++ trunk/reactos/include/ndk/rtltypes.h [iso-8859-1] Wed Jul 20 14:46:15 2011
@@ -257,6 +257,11 @@
 #define NLS_OEM_LEAD_BYTE_INFO                              NlsOemLeadByteInfo
 
 //
+// Activation Contexts
+//
+#define INVALID_ACTIVATION_CONTEXT                          (PVOID)0xFFFFFFFF
+
+//
 // C++ CONST casting
 //
 #if defined(__cplusplus)
@@ -758,20 +763,28 @@
     struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME *Previous;
     PACTIVATION_CONTEXT ActivationContext;
     ULONG Flags;
-} RTL_ACTIVATION_CONTEXT_STACK_FRAME,
-  *PRTL_ACTIVATION_CONTEXT_STACK_FRAME;
+} RTL_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_ACTIVATION_CONTEXT_STACK_FRAME;
+
+typedef struct _RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_BASIC
+{
+    SIZE_T Size;
+    ULONG Format;
+    RTL_ACTIVATION_CONTEXT_STACK_FRAME Frame;
+} RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_BASIC, 
*PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_BASIC;
 
 typedef struct _RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED
 {
-    ULONG Size;
+    SIZE_T Size;
     ULONG Format;
     RTL_ACTIVATION_CONTEXT_STACK_FRAME Frame;
     PVOID Extra1;
     PVOID Extra2;
     PVOID Extra3;
     PVOID Extra4;
-} RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED,
-  *PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED;
+} RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED, 
*PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED;
+
+typedef RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED 
RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
+typedef PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED 
PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
 
 #if (NTDDI_VERSION >= NTDDI_WS03)
 typedef struct _ACTIVATION_CONTEXT_STACK
@@ -781,8 +794,7 @@
     ULONG Flags;
     ULONG NextCookieSequenceNumber;
     ULONG StackId;
-} ACTIVATION_CONTEXT_STACK,
-  *PACTIVATION_CONTEXT_STACK;
+} ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK;
 #else
 typedef struct _ACTIVATION_CONTEXT_STACK
 {

Modified: trunk/reactos/include/psdk/winnt.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=52736&r1=52735&r2=52736&view=diff
==============================================================================
--- trunk/reactos/include/psdk/winnt.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/winnt.h [iso-8859-1] Wed Jul 20 14:46:15 2011
@@ -3302,6 +3302,21 @@
   SIZE_T PagefileLimit;
   LARGE_INTEGER TimeLimit;
 } QUOTA_LIMITS,*PQUOTA_LIMITS;
+    
+typedef struct _QUOTA_LIMITS_EX {
+  SIZE_T PagedPoolLimit;
+  SIZE_T NonPagedPoolLimit;
+  SIZE_T MinimumWorkingSetSize;
+  SIZE_T MaximumWorkingSetSize;
+  SIZE_T PagefileLimit;
+  LARGE_INTEGER TimeLimit;
+  SIZE_T Reserved1;
+  SIZE_T Reserved2;
+  SIZE_T Reserved3;
+  SIZE_T Reserved4;
+  ULONG Flags;
+  ULONG Reserved5;
+} QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX;
 
 typedef struct _IO_COUNTERS {
   ULONGLONG ReadOperationCount;

Modified: trunk/reactos/lib/rtl/actctx.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/actctx.c?rev=52736&r1=52735&r2=52736&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/actctx.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/actctx.c [iso-8859-1] Wed Jul 20 14:46:15 2011
@@ -2370,25 +2370,31 @@
 }
 
 NTSTATUS
-NTAPI RtlActivateActivationContext( ULONG unknown, HANDLE handle, PULONG_PTR 
cookie )
+NTAPI RtlActivateActivationContextEx( ULONG flags, PTEB tebAddress, HANDLE 
handle, PULONG_PTR cookie )
 {
     RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame;
-
+    
     if (!(frame = RtlAllocateHeap( RtlGetProcessHeap(), 0, sizeof(*frame) )))
         return STATUS_NO_MEMORY;
-
-    frame->Previous = 
NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame;
+    
+    frame->Previous = tebAddress->ActivationContextStackPointer->ActiveFrame;
     frame->ActivationContext = handle;
     frame->Flags = 0;
-
-    NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame = frame;
+    
+    tebAddress->ActivationContextStackPointer->ActiveFrame = frame;
     RtlAddRefActivationContext( handle );
-
+    
     *cookie = (ULONG_PTR)frame;
     DPRINT( "%p cookie=%lx\n", handle, *cookie );
     return STATUS_SUCCESS;
 }
 
+
+NTSTATUS
+NTAPI RtlActivateActivationContext( ULONG flags, HANDLE handle, PULONG_PTR 
cookie )
+{
+    return RtlActivateActivationContextEx(flags, NtCurrentTeb(), handle, 
cookie);
+}
 
 NTSTATUS
 NTAPI


Reply via email to