mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 14:53:40 +00:00
[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. svn path=/trunk/; revision=52736
This commit is contained in:
parent
825444af66
commit
3013167a9d
5 changed files with 83 additions and 21 deletions
|
@ -117,7 +117,6 @@ Author:
|
||||||
#define PSP_LONG_QUANTUMS 16
|
#define PSP_LONG_QUANTUMS 16
|
||||||
|
|
||||||
#ifndef NTOS_MODE_USER
|
#ifndef NTOS_MODE_USER
|
||||||
|
|
||||||
//
|
//
|
||||||
// Thread Access Types
|
// Thread Access Types
|
||||||
//
|
//
|
||||||
|
@ -149,6 +148,7 @@ Author:
|
||||||
#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \
|
#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \
|
||||||
SYNCHRONIZE | \
|
SYNCHRONIZE | \
|
||||||
0xFFF)
|
0xFFF)
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Thread Base Priorities
|
// Thread Base Priorities
|
||||||
|
@ -162,7 +162,6 @@ Author:
|
||||||
// TLS Slots
|
// TLS Slots
|
||||||
//
|
//
|
||||||
#define TLS_MINIMUM_AVAILABLE 64
|
#define TLS_MINIMUM_AVAILABLE 64
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Job Access Types
|
// Job Access Types
|
||||||
|
@ -194,7 +193,6 @@ Author:
|
||||||
#define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 0x1000
|
#define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 0x1000
|
||||||
#define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x2000
|
#define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x2000
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Cross Thread Flags
|
// Cross Thread Flags
|
||||||
//
|
//
|
||||||
|
@ -223,9 +221,7 @@ Author:
|
||||||
#define STA_LPC_EXIT_THREAD_CALLED_BIT 0x2
|
#define STA_LPC_EXIT_THREAD_CALLED_BIT 0x2
|
||||||
#define STA_ADDRESS_SPACE_OWNER_BIT 0x4
|
#define STA_ADDRESS_SPACE_OWNER_BIT 0x4
|
||||||
#define STA_OWNS_WORKING_SET_BITS 0x1F8
|
#define STA_OWNS_WORKING_SET_BITS 0x1F8
|
||||||
#endif
|
|
||||||
|
|
||||||
#define TLS_EXPANSION_SLOTS 1024
|
|
||||||
//
|
//
|
||||||
// Process Flags
|
// Process Flags
|
||||||
//
|
//
|
||||||
|
@ -261,8 +257,22 @@ Author:
|
||||||
// Vista Process Flags
|
// Vista Process Flags
|
||||||
//
|
//
|
||||||
#define PSF2_PROTECTED_BIT 0x800
|
#define PSF2_PROTECTED_BIT 0x800
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// TLS/FLS Defines
|
||||||
|
//
|
||||||
|
#define TLS_EXPANSION_SLOTS 1024
|
||||||
|
|
||||||
#ifdef NTOS_MODE_USER
|
#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
|
// Current Process/Thread built-in 'special' handles
|
||||||
//
|
//
|
||||||
|
|
|
@ -172,6 +172,17 @@ RtlInitEmptyUnicodeString(OUT PUNICODE_STRING UnicodeString,
|
||||||
UnicodeString->Buffer = Buffer;
|
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
|
// LUID Macros
|
||||||
//
|
//
|
||||||
|
@ -3046,12 +3057,21 @@ LdrRelocateImageWithBias(
|
||||||
// Activation Context Functions
|
// Activation Context Functions
|
||||||
//
|
//
|
||||||
#ifdef NTOS_MODE_USER
|
#ifdef NTOS_MODE_USER
|
||||||
|
NTSYSAPI
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RtlActivateActivationContextEx(
|
||||||
|
IN ULONG Flags,
|
||||||
|
IN PTEB Teb,
|
||||||
|
IN PVOID Context,
|
||||||
|
IN PULONG_PTR Cookie
|
||||||
|
);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlActivateActivationContext(
|
RtlActivateActivationContext(
|
||||||
IN ULONG Unknown,
|
IN ULONG Flags,
|
||||||
IN HANDLE Handle,
|
IN HANDLE Handle,
|
||||||
OUT PULONG_PTR Cookie
|
OUT PULONG_PTR Cookie
|
||||||
);
|
);
|
||||||
|
@ -3063,7 +3083,6 @@ RtlAddRefActivationContext(
|
||||||
PVOID Context
|
PVOID Context
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
PRTL_ACTIVATION_CONTEXT_STACK_FRAME
|
PRTL_ACTIVATION_CONTEXT_STACK_FRAME
|
||||||
FASTCALL
|
FASTCALL
|
||||||
|
|
|
@ -256,6 +256,11 @@ C_ASSERT(HEAP_CREATE_VALID_MASK == 0x0007F0FF);
|
||||||
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
|
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
|
||||||
#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
|
#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
|
||||||
|
|
||||||
|
//
|
||||||
|
// Activation Contexts
|
||||||
|
//
|
||||||
|
#define INVALID_ACTIVATION_CONTEXT (PVOID)0xFFFFFFFF
|
||||||
|
|
||||||
//
|
//
|
||||||
// C++ CONST casting
|
// C++ CONST casting
|
||||||
//
|
//
|
||||||
|
@ -758,20 +763,28 @@ typedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME
|
||||||
struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME *Previous;
|
struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME *Previous;
|
||||||
PACTIVATION_CONTEXT ActivationContext;
|
PACTIVATION_CONTEXT ActivationContext;
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
} RTL_ACTIVATION_CONTEXT_STACK_FRAME,
|
} RTL_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_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
|
typedef struct _RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED
|
||||||
{
|
{
|
||||||
ULONG Size;
|
SIZE_T Size;
|
||||||
ULONG Format;
|
ULONG Format;
|
||||||
RTL_ACTIVATION_CONTEXT_STACK_FRAME Frame;
|
RTL_ACTIVATION_CONTEXT_STACK_FRAME Frame;
|
||||||
PVOID Extra1;
|
PVOID Extra1;
|
||||||
PVOID Extra2;
|
PVOID Extra2;
|
||||||
PVOID Extra3;
|
PVOID Extra3;
|
||||||
PVOID Extra4;
|
PVOID Extra4;
|
||||||
} RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED,
|
} RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED, *PRTL_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)
|
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||||
typedef struct _ACTIVATION_CONTEXT_STACK
|
typedef struct _ACTIVATION_CONTEXT_STACK
|
||||||
|
@ -781,8 +794,7 @@ typedef struct _ACTIVATION_CONTEXT_STACK
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
ULONG NextCookieSequenceNumber;
|
ULONG NextCookieSequenceNumber;
|
||||||
ULONG StackId;
|
ULONG StackId;
|
||||||
} ACTIVATION_CONTEXT_STACK,
|
} ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK;
|
||||||
*PACTIVATION_CONTEXT_STACK;
|
|
||||||
#else
|
#else
|
||||||
typedef struct _ACTIVATION_CONTEXT_STACK
|
typedef struct _ACTIVATION_CONTEXT_STACK
|
||||||
{
|
{
|
||||||
|
|
|
@ -3303,6 +3303,21 @@ typedef struct _QUOTA_LIMITS {
|
||||||
LARGE_INTEGER TimeLimit;
|
LARGE_INTEGER TimeLimit;
|
||||||
} QUOTA_LIMITS,*PQUOTA_LIMITS;
|
} 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 {
|
typedef struct _IO_COUNTERS {
|
||||||
ULONGLONG ReadOperationCount;
|
ULONGLONG ReadOperationCount;
|
||||||
ULONGLONG WriteOperationCount;
|
ULONGLONG WriteOperationCount;
|
||||||
|
|
|
@ -2370,18 +2370,18 @@ RtlReleaseActivationContext( HANDLE handle )
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
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;
|
RTL_ACTIVATION_CONTEXT_STACK_FRAME *frame;
|
||||||
|
|
||||||
if (!(frame = RtlAllocateHeap( RtlGetProcessHeap(), 0, sizeof(*frame) )))
|
if (!(frame = RtlAllocateHeap( RtlGetProcessHeap(), 0, sizeof(*frame) )))
|
||||||
return STATUS_NO_MEMORY;
|
return STATUS_NO_MEMORY;
|
||||||
|
|
||||||
frame->Previous = NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame;
|
frame->Previous = tebAddress->ActivationContextStackPointer->ActiveFrame;
|
||||||
frame->ActivationContext = handle;
|
frame->ActivationContext = handle;
|
||||||
frame->Flags = 0;
|
frame->Flags = 0;
|
||||||
|
|
||||||
NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame = frame;
|
tebAddress->ActivationContextStackPointer->ActiveFrame = frame;
|
||||||
RtlAddRefActivationContext( handle );
|
RtlAddRefActivationContext( handle );
|
||||||
|
|
||||||
*cookie = (ULONG_PTR)frame;
|
*cookie = (ULONG_PTR)frame;
|
||||||
|
@ -2390,6 +2390,12 @@ NTAPI RtlActivateActivationContext( ULONG unknown, HANDLE handle, PULONG_PTR coo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI RtlActivateActivationContext( ULONG flags, HANDLE handle, PULONG_PTR cookie )
|
||||||
|
{
|
||||||
|
return RtlActivateActivationContextEx(flags, NtCurrentTeb(), handle, cookie);
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlDeactivateActivationContext( ULONG flags, ULONG_PTR cookie )
|
RtlDeactivateActivationContext( ULONG flags, ULONG_PTR cookie )
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue