mirror of
https://github.com/reactos/reactos.git
synced 2025-07-05 14:11:23 +00:00
[NDK-RTL]
The parameter of RtlAllocateActivationContextStack is of type PACTIVATION_CONTEXT_STACK*. svn path=/trunk/; revision=58548
This commit is contained in:
parent
777fb8e63a
commit
b24c620ea3
4 changed files with 10 additions and 10 deletions
|
@ -508,7 +508,7 @@ LdrpInitializeThread(IN PCONTEXT Context)
|
||||||
|
|
||||||
/* Allocate an Activation Context Stack */
|
/* Allocate an Activation Context Stack */
|
||||||
DPRINT("ActivationContextStack %p\n", NtCurrentTeb()->ActivationContextStackPointer);
|
DPRINT("ActivationContextStack %p\n", NtCurrentTeb()->ActivationContextStackPointer);
|
||||||
Status = RtlAllocateActivationContextStack((PVOID*)&NtCurrentTeb()->ActivationContextStackPointer);
|
Status = RtlAllocateActivationContextStack(&NtCurrentTeb()->ActivationContextStackPointer);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
DPRINT1("Warning: Unable to allocate ActivationContextStack\n");
|
DPRINT1("Warning: Unable to allocate ActivationContextStack\n");
|
||||||
|
@ -1709,7 +1709,7 @@ LdrpInitializeProcess(IN PCONTEXT Context,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate an Activation Context Stack */
|
/* Allocate an Activation Context Stack */
|
||||||
Status = RtlAllocateActivationContextStack((PVOID *)&Teb->ActivationContextStackPointer);
|
Status = RtlAllocateActivationContextStack(&Teb->ActivationContextStackPointer);
|
||||||
if (!NT_SUCCESS(Status)) return Status;
|
if (!NT_SUCCESS(Status)) return Status;
|
||||||
|
|
||||||
// FIXME: Loader private heap is missing
|
// FIXME: Loader private heap is missing
|
||||||
|
|
|
@ -31,14 +31,14 @@ typedef struct _FIBER /* Field offsets: */
|
||||||
{ /* 32 bit 64 bit */
|
{ /* 32 bit 64 bit */
|
||||||
/* this must be the first field */
|
/* this must be the first field */
|
||||||
PVOID Parameter; /* 0x00 0x00 */
|
PVOID Parameter; /* 0x00 0x00 */
|
||||||
struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList; /* 0x04 0x08 */
|
PEXCEPTION_REGISTRATION_RECORD ExceptionList; /* 0x04 0x08 */
|
||||||
PVOID StackBase; /* 0x08 0x10 */
|
PVOID StackBase; /* 0x08 0x10 */
|
||||||
PVOID StackLimit; /* 0x0C 0x18 */
|
PVOID StackLimit; /* 0x0C 0x18 */
|
||||||
PVOID DeallocationStack; /* 0x10 0x20 */
|
PVOID DeallocationStack; /* 0x10 0x20 */
|
||||||
CONTEXT Context; /* 0x14 0x28 */
|
CONTEXT Context; /* 0x14 0x28 */
|
||||||
ULONG GuaranteedStackBytes; /* 0x2E0 */
|
ULONG GuaranteedStackBytes; /* 0x2E0 */
|
||||||
PVOID FlsData; /* 0x2E4 */
|
PVOID FlsData; /* 0x2E4 */
|
||||||
PVOID ActivationContextStack; /* 0x2E8 */
|
PVOID /* PACTIVATION_CONTEXT_STACK */ ActivationContextStack; /* 0x2E8 */
|
||||||
} FIBER, *PFIBER;
|
} FIBER, *PFIBER;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
|
@ -3503,7 +3503,7 @@ NTSYSAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlAllocateActivationContextStack(
|
RtlAllocateActivationContextStack(
|
||||||
_In_ PVOID *Context
|
_In_ PACTIVATION_CONTEXT_STACK *Stack
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSAPI
|
NTSYSAPI
|
||||||
|
|
|
@ -2429,7 +2429,7 @@ RtlDeactivateActivationContext( ULONG flags, ULONG_PTR cookie )
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlFreeActivationContextStack(PACTIVATION_CONTEXT_STACK Stack)
|
RtlFreeActivationContextStack(IN PACTIVATION_CONTEXT_STACK Stack)
|
||||||
{
|
{
|
||||||
PRTL_ACTIVATION_CONTEXT_STACK_FRAME ActiveFrame, PrevFrame;
|
PRTL_ACTIVATION_CONTEXT_STACK_FRAME ActiveFrame, PrevFrame;
|
||||||
|
|
||||||
|
@ -2775,15 +2775,15 @@ RtlFindActivationContextSectionString( ULONG flags, const GUID *guid, ULONG sect
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
RtlAllocateActivationContextStack(IN PVOID *Context)
|
RtlAllocateActivationContextStack(IN PACTIVATION_CONTEXT_STACK *Stack)
|
||||||
{
|
{
|
||||||
PACTIVATION_CONTEXT_STACK ContextStack;
|
PACTIVATION_CONTEXT_STACK ContextStack;
|
||||||
|
|
||||||
/* Check if it's already allocated */
|
/* Check if it's already allocated */
|
||||||
if (*Context) return STATUS_SUCCESS;
|
if (*Stack) return STATUS_SUCCESS;
|
||||||
|
|
||||||
/* Allocate space for the context stack */
|
/* Allocate space for the context stack */
|
||||||
ContextStack = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (ACTIVATION_CONTEXT_STACK) );
|
ContextStack = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ACTIVATION_CONTEXT_STACK));
|
||||||
if (!ContextStack)
|
if (!ContextStack)
|
||||||
{
|
{
|
||||||
return STATUS_NO_MEMORY;
|
return STATUS_NO_MEMORY;
|
||||||
|
@ -2796,7 +2796,7 @@ RtlAllocateActivationContextStack(IN PVOID *Context)
|
||||||
ContextStack->NextCookieSequenceNumber = 1;
|
ContextStack->NextCookieSequenceNumber = 1;
|
||||||
ContextStack->StackId = 1; //TODO: Timer-based
|
ContextStack->StackId = 1; //TODO: Timer-based
|
||||||
|
|
||||||
*Context = ContextStack;
|
*Stack = ContextStack;
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue