if (Current & EX_RUNDOWN_ACTIVE)
{
/* Get Pointer */
- PRUNDOWN_DESCRIPTOR RundownDescriptor = (PRUNDOWN_DESCRIPTOR)((ULONG_PTR)RunRef->Ptr & ~EX_RUNDOWN_ACTIVE);
+ PRUNDOWN_DESCRIPTOR RundownDescriptor = (PRUNDOWN_DESCRIPTOR)(Current & ~EX_RUNDOWN_ACTIVE);
if (RundownDescriptor == NULL)
{
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
if(PreviousMode != KernelMode)
ULONG TebSize;
PVOID TebBase;
TEB Teb;
+
+ PAGED_CODE();
TebSize = PAGE_SIZE;
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
if(ThreadContext == NULL)
{
return STATUS_INVALID_PARAMETER;
NTSTATUS Status;
KIRQL oldIrql;
+ PAGED_CODE();
+
DPRINT("PsCreateSystemThread(ThreadHandle %x, ProcessHandle %x)\n",
ThreadHandle,ProcessHandle);
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
if(PreviousMode != KernelMode)
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
if(PreviousMode != KernelMode)
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
/* make sure we're having a handle with enough rights, especially the to
KPROCESSOR_MODE PreviousMode;
PEPROCESS CurrentProcess;
NTSTATUS Status = STATUS_SUCCESS;
+
+ PAGED_CODE();
PreviousMode = ExGetPreviousMode();
CurrentProcess = PsGetCurrentProcess();
PreviousMode = ExGetPreviousMode();
+ PAGED_CODE();
+
Status = ObReferenceObjectByHandle(ProcessHandle,
PROCESS_QUERY_INFORMATION,
PsProcessType,
KPROCESSOR_MODE PreviousMode;
HANDLE hJob;
NTSTATUS Status = STATUS_SUCCESS;
+
+ PAGED_CODE();
PreviousMode = ExGetPreviousMode();
PEJOB Job;
NTSTATUS Status;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
Status = ObReferenceObjectByHandle(JobHandle,
NTSTATUS Status;
PEPROCESS Process;
+ PAGED_CODE();
+
DPRINT("NtTerminateProcess(ProcessHandle %x, ExitStatus %x)\n",
ProcessHandle, ExitStatus);
PETHREAD Thread;
NTSTATUS Status;
+ PAGED_CODE();
+
Status = ObReferenceObjectByHandle(ThreadHandle,
THREAD_TERMINATE,
PsThreadType,
PLIST_ENTRY current_entry;
PEPORT_TERMINATION_REQUEST current;
+ PAGED_CODE();
+
KeAcquireSpinLock(&Thread->ActiveTimerListLock, &oldIrql);
while ((current_entry = RemoveHeadList(&Thread->TerminationPortList)) !=
&Thread->TerminationPortList);
KIRQL oldIrql;
PETHREAD Thread;
+ PAGED_CODE();
+
Status = ObReferenceObjectByHandle(PortHandle,
PORT_ALL_ACCESS,
LpcPortObjectType,
NtQueryDefaultLocale(IN BOOLEAN UserProfile,
OUT PLCID DefaultLocaleId)
{
+ PAGED_CODE();
+
if (DefaultLocaleId == NULL)
return STATUS_UNSUCCESSFUL;
WCHAR ValueBuffer[20];
HANDLE UserKey = NULL;
NTSTATUS Status;
+
+ PAGED_CODE();
if (UserProfile)
{
HANDLE UserKey;
HANDLE KeyHandle;
NTSTATUS Status;
+
+ PAGED_CODE();
Status = RtlOpenCurrentUser(KEY_READ,
&UserKey);
NTSTATUS STDCALL
NtQueryInstallUILanguage(OUT PLANGID LanguageId)
{
+ PAGED_CODE();
+
*LanguageId = PsInstallUILanguageId;
return STATUS_SUCCESS;
HANDLE UserHandle;
HANDLE KeyHandle;
NTSTATUS Status;
+
+ PAGED_CODE();
Status = RtlOpenCurrentUser(KEY_WRITE,
&UserHandle);
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
if(PreviousMode == UserMode)
ULONG ViewSize;
PVOID TableBase;
NTSTATUS Status;
+
+ PAGED_CODE();
/* Allocate the Process Environment Block (PEB) */
Process->TebBlock = (PVOID) MM_ROUND_DOWN(PEB_BASE, MM_VIRTMEM_GRANULARITY);
{
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+
+ PAGED_CODE();
PreviousMode = ExGetPreviousMode();
"ObjectAttributes %x, ClientId %x { UniP %d, UniT %d })\n",
ProcessHandle, DesiredAccess, ObjectAttributes, ClientId,
ClientId->UniqueProcess, ClientId->UniqueThread);
-
+
+ PAGED_CODE();
/*
* Not sure of the exact semantics
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
DefaultQueryInfoBufferCheck(ProcessInformationClass,
ACCESS_MASK Access;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
DefaultSetInfoBufferCheck(ProcessInformationClass,
PLARGE_INTEGER Delay = (Timeout ? &PsLockTimeout : NULL);
PKTHREAD CallingThread = KeGetCurrentThread();
+ PAGED_CODE();
+
KeEnterCriticalRegion();
for(;;)
VOID
PsUnlockProcess(PEPROCESS Process)
{
+ PAGED_CODE();
+
ASSERT(Process->LockOwner == KeGetCurrentThread());
if(InterlockedDecrementUL(&Process->LockCount) == 0)
PETHREAD Thread;
NTSTATUS Status;
ULONG Count;
+
+ PAGED_CODE();
DPRINT("NtResumeThead(ThreadHandle %lx SuspendCount %p)\n",
ThreadHandle, SuspendCount);
PETHREAD Thread;
NTSTATUS Status;
ULONG Count;
+
+ PAGED_CODE();
Status = ObReferenceObjectByHandle(ThreadHandle,
THREAD_SUSPEND_RESUME,
IN PCLIENT_ID ClientId)
{
NTSTATUS Status = STATUS_INVALID_PARAMETER;
+
+ PAGED_CODE();
if((NULL != ThreadHandle)&&(NULL != ObjectAttributes))
{
HANDLE Handle;
PVOID Address;
}u;
+
+ PAGED_CODE();
if (ThreadInformationClass <= MaxThreadInfoClass &&
!SetInformationData[ThreadInformationClass].Implemented)
LARGE_INTEGER Count;
BOOLEAN Last;
}u;
+
+ PAGED_CODE();
- if (ThreadInformationClass <= MaxThreadInfoClass &&
- !QueryInformationData[ThreadInformationClass].Implemented)
- {
- return STATUS_NOT_IMPLEMENTED;
- }
- if (ThreadInformationClass > MaxThreadInfoClass ||
- QueryInformationData[ThreadInformationClass].Size == 0)
- {
- return STATUS_INVALID_INFO_CLASS;
- }
- if (ThreadInformationLength != QueryInformationData[ThreadInformationClass].Size)
- {
- return STATUS_INFO_LENGTH_MISMATCH;
- }
+ if (ThreadInformationClass <= MaxThreadInfoClass &&
+ !QueryInformationData[ThreadInformationClass].Implemented)
+ {
+ return STATUS_NOT_IMPLEMENTED;
+ }
+ if (ThreadInformationClass > MaxThreadInfoClass ||
+ QueryInformationData[ThreadInformationClass].Size == 0)
+ {
+ return STATUS_INVALID_INFO_CLASS;
+ }
+ if (ThreadInformationLength != QueryInformationData[ThreadInformationClass].Size)
+ {
+ return STATUS_INFO_LENGTH_MISMATCH;
+ }
Status = ObReferenceObjectByHandle(ThreadHandle,
THREAD_QUERY_INFORMATION,
PKTRAP_FRAME SavedTrapFrame;
PVOID SavedCallbackStack;
PVOID SavedExceptionStack;
+
+ PAGED_CODE();
Thread = PsGetCurrentThread();
if (Thread->Tcb.CallbackStack == NULL)
NTSTATUS CallbackStatus;
NTW32CALL_SAVED_STATE SavedState;
PNTW32CALL_CALLBACK_STACK AssignedStack;
+
+ PAGED_CODE();
DPRINT("NtW32Call(RoutineIndex %d, Argument %X, ArgumentLength %d)\n",
RoutineIndex, Argument, ArgumentLength);
PTOKEN OldToken;
PTOKEN NewToken = (PTOKEN)NewTokenP;
+ PAGED_CODE();
+
if (NewToken->TokenType != TokenPrimary)
{
return(STATUS_UNSUCCESSFUL);
{
ULONG i;
ULONG uLength;
+
+ PAGED_CODE();
uLength = Count * sizeof(SID_AND_ATTRIBUTES);
for (i = 0; i < Count; i++)
{
NTSTATUS Status;
OBJECT_ATTRIBUTES ObjectAttributes;
+
+ PAGED_CODE();
InitializeObjectAttributes(&ObjectAttributes,
NULL,
ULONG g;
PACCESS_TOKEN NewToken;
+ PAGED_CODE();
+
Token = PsReferenceEffectiveToken(Thread,
&TokenType,
&b,
{
UCHAR b;
+ PAGED_CODE();
+
if (ClientContext->DirectlyAccessClientToken == FALSE)
{
b = ClientContext->SecurityQos.EffectiveOnly;
PTOKEN_GROUPS PtrTokenGroups;
PTOKEN_DEFAULT_DACL PtrDefaultDacl;
PTOKEN_STATISTICS PtrTokenStatistics;
+
+ PAGED_CODE();
Status = ObReferenceObjectByHandle(TokenHandle,
(TokenInformationClass == TokenSource) ? TOKEN_QUERY_SOURCE : TOKEN_QUERY,
TOKEN_OWNER TokenOwnerSet = { 0 };
TOKEN_PRIMARY_GROUP TokenPrimaryGroupSet = { 0 };
DWORD NeededAccess = 0;
+
+ PAGED_CODE();
switch (TokenInformationClass)
{
PTOKEN Token;
PTOKEN NewToken;
NTSTATUS Status = STATUS_SUCCESS;
+
+ PAGED_CODE();
PreviousMode = KeGetPreviousMode();
ULONG b;
ULONG c;
+ PAGED_CODE();
+
Status = ObReferenceObjectByHandle(TokenHandle,
?,
SepTokenObjectType,
ULONG c;
#endif
NTSTATUS Status;
+
+ PAGED_CODE();
DPRINT ("NtAdjustPrivilegesToken() called\n");
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
if(PreviousMode != KernelMode)
SeQueryAuthenticationIdToken(IN PACCESS_TOKEN Token,
OUT PLUID LogonId)
{
+ PAGED_CODE();
+
*LogonId = ((PTOKEN)Token)->AuthenticationId;
return STATUS_SUCCESS;
STDCALL
SeTokenImpersonationLevel(IN PACCESS_TOKEN Token)
{
+ PAGED_CODE();
+
return ((PTOKEN)Token)->ImpersonationLevel;
}
TOKEN_TYPE STDCALL
SeTokenType(IN PACCESS_TOKEN Token)
{
+ PAGED_CODE();
+
return ((PTOKEN)Token)->TokenType;
}
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
+ PAGED_CODE();
+
PreviousMode = ExGetPreviousMode();
if(PreviousMode != KernelMode)