ReactOS 0.4.17-dev-812-ged4f258
dep.c File Reference
#include <k32.h>
Include dependency graph for dep.c:

Go to the source code of this file.

Functions

DEP_SYSTEM_POLICY_TYPE WINAPI GetSystemDEPPolicy (VOID)
 
BOOL WINAPI GetProcessDEPPolicy (_In_ HANDLE hProcess, _Out_opt_ LPDWORD lpFlags, _Out_opt_ PBOOL lpPermanent)
 
BOOL WINAPI SetProcessDEPPolicy (_In_ DWORD dwFlags)
 

Function Documentation

◆ GetProcessDEPPolicy()

BOOL WINAPI GetProcessDEPPolicy ( _In_ HANDLE  hProcess,
_Out_opt_ LPDWORD  lpFlags,
_Out_opt_ PBOOL  lpPermanent 
)

Definition at line 31 of file dep.c.

35{
36 ULONG ExecuteFlags;
38
39 /* ProcessExecuteFlags is only valid for the current process */
41
44 &ExecuteFlags,
45 sizeof(ExecuteFlags),
46 NULL);
47 if (!NT_SUCCESS(Status))
48 {
50 return FALSE;
51 }
52
53 if (lpFlags)
54 {
55 *lpFlags = 0;
56 if (ExecuteFlags & MEM_EXECUTE_OPTION_DISABLE)
57 *lpFlags |= PROCESS_DEP_ENABLE;
60 }
61
62 if (lpPermanent)
63 *lpPermanent = (ExecuteFlags & MEM_EXECUTE_OPTION_PERMANENT) != 0;
64
65 return TRUE;
66}
LONG NTSTATUS
Definition: precomp.h:26
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
Status
Definition: gdiplustypes.h:24
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:71
#define MEM_EXECUTE_OPTION_DISABLE
Definition: mmtypes.h:73
#define MEM_EXECUTE_OPTION_PERMANENT
Definition: mmtypes.h:76
#define MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION
Definition: mmtypes.h:75
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
NTSTATUS NTAPI NtQueryInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_writes_bytes_to_opt_(ProcessInformationLength, *ReturnLength) PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
Definition: query.c:211
DWORD BaseSetLastNTError(IN NTSTATUS Status)
Definition: reactos.cpp:167
uint32_t ULONG
Definition: typedefs.h:59
#define PROCESS_DEP_ENABLE
Definition: winbase.h:593
#define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION
Definition: winbase.h:594
@ ProcessExecuteFlags
Definition: winternl.h:1916

◆ GetSystemDEPPolicy()

DEP_SYSTEM_POLICY_TYPE WINAPI GetSystemDEPPolicy ( VOID  )

Definition at line 21 of file dep.c.

22{
23 return (DEP_SYSTEM_POLICY_TYPE)SharedUserData->NXSupportPolicy;
24}
#define SharedUserData
enum _DEP_SYSTEM_POLICY_TYPE DEP_SYSTEM_POLICY_TYPE

◆ SetProcessDEPPolicy()

BOOL WINAPI SetProcessDEPPolicy ( _In_ DWORD  dwFlags)

Definition at line 73 of file dep.c.

75{
76 ULONG ExecuteFlags = 0;
78
83
86 &ExecuteFlags,
87 sizeof(ExecuteFlags));
88 if (!NT_SUCCESS(Status))
89 {
91 return FALSE;
92 }
93
94 return TRUE;
95}
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define NtCurrentProcess()
Definition: nt_native.h:1660
NTSTATUS NTAPI NtSetInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _In_reads_bytes_(ProcessInformationLength) PVOID ProcessInformation, _In_ ULONG ProcessInformationLength)
Definition: query.c:1422