Skip to content

Commit

Permalink
Add PhSetVirtualMemoryPagePriority, PhGetMemoryPagePriorityString
Browse files Browse the repository at this point in the history
  • Loading branch information
dmex committed Mar 2, 2025
1 parent 1b1c8b2 commit 0815535
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 4 deletions.
2 changes: 1 addition & 1 deletion SystemInformer/procprv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1587,7 +1587,7 @@ VOID PhpUpdateDynamicInfoProcessItem(
ProcessItem->UserTime = Process->UserTime;
ProcessItem->NumberOfHandles = Process->HandleCount;
ProcessItem->NumberOfThreads = Process->NumberOfThreads;
ProcessItem->WorkingSetPrivateSize = (SIZE_T)Process->WorkingSetPrivateSize.QuadPart;
ProcessItem->WorkingSetPrivateSize = Process->WorkingSetPrivateSize;
ProcessItem->PeakNumberOfThreads = Process->NumberOfThreadsHighWatermark;
ProcessItem->HardFaultCount = Process->HardFaultCount;

Expand Down
14 changes: 13 additions & 1 deletion phlib/include/phnative.h
Original file line number Diff line number Diff line change
Expand Up @@ -2798,11 +2798,13 @@ PhDeleteValueKeyZ(
return PhDeleteValueKey(KeyHandle, &valueName);
}

typedef BOOLEAN (NTAPI *PPH_ENUM_KEY_CALLBACK)(
typedef _Function_class_(PH_ENUM_KEY_CALLBACK)
BOOLEAN NTAPI PH_ENUM_KEY_CALLBACK(
_In_ HANDLE RootDirectory,
_In_ PVOID Information,
_In_opt_ PVOID Context
);
typedef PH_ENUM_KEY_CALLBACK* PPH_ENUM_KEY_CALLBACK;

PHLIBAPI
NTSTATUS
Expand Down Expand Up @@ -3901,6 +3903,16 @@ PhPrefetchVirtualMemory(
_In_ PMEMORY_RANGE_ENTRY VirtualAddresses
);

PHLIBAPI
NTSTATUS
NTAPI
PhSetVirtualMemoryPagePriority(
_In_ HANDLE ProcessHandle,
_In_ ULONG PagePriority,
_In_ PVOID VirtualAddress,
_In_ SIZE_T NumberOfBytes
);

PHLIBAPI
NTSTATUS
NTAPI
Expand Down
31 changes: 29 additions & 2 deletions phlib/native.c
Original file line number Diff line number Diff line change
Expand Up @@ -5472,6 +5472,7 @@ NTSTATUS PhSetProcessPagePriority(
_In_ ULONG PagePriority
)
{
// See also PhSetVirtualMemoryPagePriority (dmex)
NTSTATUS status;
PAGE_PRIORITY_INFORMATION pagePriorityInfo;

Expand Down Expand Up @@ -13582,7 +13583,7 @@ NTSTATUS PhPrefetchVirtualMemory(
// _In_ HANDLE ProcessHandle,
// _In_ PVOID VirtualAddress,
// _In_ SIZE_T NumberOfBytes,
// _In_ OFFER_PRIORITY Priority
// _In_ MEMORY_PAGE_PRIORITY_INFORMATION Priority
// )
//{
// NTSTATUS status;
Expand Down Expand Up @@ -13644,7 +13645,33 @@ NTSTATUS PhPrefetchVirtualMemory(
//
// return status;
//}
//

NTSTATUS PhSetVirtualMemoryPagePriority(
_In_ HANDLE ProcessHandle,
_In_ ULONG PagePriority,
_In_ PVOID VirtualAddress,
_In_ SIZE_T NumberOfBytes
)
{
NTSTATUS status;
MEMORY_RANGE_ENTRY virtualMemoryRange;

memset(&virtualMemoryRange, 0, sizeof(MEMORY_RANGE_ENTRY));
virtualMemoryRange.VirtualAddress = VirtualAddress;
virtualMemoryRange.NumberOfBytes = NumberOfBytes;

status = PhpSetInformationVirtualMemory(
ProcessHandle,
VmPagePriorityInformation,
1,
&virtualMemoryRange,
&PagePriority,
sizeof(PagePriority)
);

return status;
}

// rev from SetProcessValidCallTargets (dmex)
//NTSTATUS PhSetProcessValidCallTarget(
// _In_ HANDLE ProcessHandle,
Expand Down

0 comments on commit 0815535

Please sign in to comment.