#ifndef _NTPSAPI_H
#if (PHNT_MODE != PHNT_MODE_KERNEL)
/**
* The PROCESS_COMMIT_RELEASE_INFORMATION structure contains information about the commit and release of memory for a process.
*
* NtQueryInformationProcess(ProcessCommitReleaseInformation) calls MmQueryCommitReleaseState and fills:
* Eligible from the process commit-release state, CommitDebt, CommittedMemResetSize, and RepurposedMemResetSize.
*
* NtSetInformationProcess(ProcessCommitReleaseInformation) interprets the low three flag bits exactly as the current names
* suggest: Eligible, ReleaseRepurposedMemResetCommit, and ForceReleaseMemResetCommit.
*/
typedef struct _PROCESS_COMMIT_RELEASE_INFORMATION
{
ULONG Version; // Set expects version 1.
union
{
ULONG Flags;
struct
{
ULONG Eligible : 1; // Query: commit-release eligibility. Set: enables or disables eligibility.
ULONG ReleaseRepurposedMemResetCommit : 1; // Set: releases commit for MEM_RESET pages when Eligible is also set.
ULONG ForceReleaseMemResetCommit : 1; // Set: forces MEM_RESET commit release when Eligible is also set.
ULONG Spare : 29;
};
};
SIZE_T CommitDebt; // Query only.
SIZE_T CommittedMemResetSize; // Query only.
SIZE_T RepurposedMemResetSize; // Query only.
} PROCESS_COMMIT_RELEASE_INFORMATION, *PPROCESS_COMMIT_RELEASE_INFORMATION;
View code on GitHubNo description available.