15#define JOB_LIMITEDUSER_UI (JOB_OBJECT_UILIMIT_DISPLAYSETTINGS | \
16 JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS| \
17 JOB_OBJECT_UILIMIT_DESKTOP | \
18 JOB_OBJECT_UILIMIT_EXITWINDOWS)
20#define JOB_LOCKDOWN_UI (JOB_LIMITEDUSER_UI | \
21 JOB_OBJECT_UILIMIT_WRITECLIPBOARD | \
22 JOB_OBJECT_UILIMIT_READCLIPBOARD | \
23 JOB_OBJECT_UILIMIT_HANDLES | \
24 JOB_OBJECT_UILIMIT_GLOBALATOMS)
46 Info.UIRestrictionsClass = Restrictions;
155 ok(
Success !=
FALSE,
"Setting the same restrictions again failed with %lu\n",
179 ok(
Success ==
FALSE,
"Setting undefined restrictions succeeded\n");
203 ok(
Success ==
FALSE,
"SetInformationJobObject with a short buffer succeeded\n");
211 ok(
Success ==
FALSE,
"SetInformationJobObject with a long buffer succeeded\n");
221 ok(
Success ==
FALSE,
"QueryInformationJobObject with a short buffer succeeded\n");
230 ok(
Success ==
FALSE,
"SetInformationJobObject with a NULL buffer succeeded\n");
263 ok(
Success ==
FALSE,
"Setting restrictions through a query handle succeeded\n");
301 memset(&ExtendedLimit, 0,
sizeof(ExtendedLimit));
312 sizeof(ExtendedLimit));
317 ok(
Success !=
FALSE,
"Setting the lockdown restrictions failed with %lu\n",
337 memset(&ExtendedLimit, 0,
sizeof(ExtendedLimit));
347 sizeof(ExtendedLimit));
352 ok(
Success !=
FALSE,
"Setting the limited user restrictions failed with %lu\n",
379 ok(
Success !=
FALSE,
"Excepting every restriction away failed with %lu\n",
static BOOL SetRestrictions(_In_ HANDLE hJob, _In_ ULONG Restrictions)
static void test_Access(void)
static void test_InvalidParameters(void)
static void test_RoundTrip(void)
#define JOB_LIMITEDUSER_UI
static void test_SandboxPolicies(void)
static const ULONG SingleRestrictions[]
#define ok_long(expression, result)
#define ERROR_INVALID_PARAMETER
#define GetCurrentProcess()
#define ERROR_ACCESS_DENIED
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
BOOL WINAPI SetInformationJobObject(_In_ HANDLE hJob, _In_ JOBOBJECTINFOCLASS JobObjectInformationClass, _In_reads_bytes_(cbJobObjectInformationLength) LPVOID lpJobObjectInformation, _In_ DWORD cbJobObjectInformationLength)
HANDLE WINAPI CreateJobObjectW(_In_ LPSECURITY_ATTRIBUTES lpJobAttributes, _In_ LPCWSTR lpName)
BOOL WINAPI QueryInformationJobObject(_In_opt_ HANDLE hJob, _In_ JOBOBJECTINFOCLASS JobObjectInformationClass, _Out_writes_bytes_to_(cbJobObjectInformationLength, *lpReturnLength) LPVOID lpJobObjectInformation, _In_ DWORD cbJobObjectInformationLength, _Out_opt_ LPDWORD lpReturnLength)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define JOB_OBJECT_UILIMIT_ALL
#define JOB_OBJECT_UILIMIT_WRITECLIPBOARD
#define JOB_OBJECT_UILIMIT_DESKTOP
#define JOB_OBJECT_UILIMIT_GLOBALATOMS
#define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
@ JobObjectExtendedLimitInformation
@ JobObjectBasicUIRestrictions
#define JOB_OBJECT_UILIMIT_HANDLES
#define JOB_OBJECT_LIMIT_ACTIVE_PROCESS
#define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION
#define JOB_OBJECT_UILIMIT_READCLIPBOARD
#define JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS
#define JOB_OBJECT_UILIMIT_DISPLAYSETTINGS
#define JOB_OBJECT_UILIMIT_EXITWINDOWS
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
DWORD WINAPI GetLastError(void)