11#define SIZEOF_MDL (5 * sizeof(PVOID) + 2 * sizeof(ULONG))
14#define MAX_MDL_BUFFER_SIZE ((MAXUSHORT - SIZEOF_MDL) / sizeof(PFN_NUMBER) * PAGE_SIZE + PAGE_SIZE - 1)
23#define LOOP_FUNCTION_SIZE_SHIFT 7
24#define LOOP_FUNCTION_SIZE (1UL << LOOP_FUNCTION_SIZE_SHIFT)
37 for (
i = 0;
i < LoopCount;
i++)
71 skip(
"Failed to create profile\n");
92 Buffer1Value =
Buffer[BufferOffset];
93 ok(Buffer1Value != 0,
"Buffer[%lu] = %lu\n", BufferOffset, Buffer1Value);
100 ok(
Buffer[BufferOffset] > Buffer1Value,
101 "Buffer[%lu] = %lu, expected more than %lu\n",
102 BufferOffset,
Buffer[BufferOffset], Buffer1Value);
110 ok(
Buffer[BufferOffset] > Buffer1Value,
111 "Buffer[%lu] = %lu, expected more than %lu\n", BufferOffset,
Buffer[BufferOffset], Buffer1Value);
112 ok(
Buffer[BufferOffset] < 2 * Buffer1Value,
113 "Buffer[%lu] = %lu, expected less than %lu\n", BufferOffset,
Buffer[BufferOffset], 2 * Buffer1Value);
115 trace(
"Buffer1Value = %lu\n", Buffer1Value);
116 trace(
"Buffer[%lu] = %lu\n", BufferOffset - 1,
Buffer[BufferOffset - 1]);
117 trace(
"Buffer[%lu] = %lu\n", BufferOffset,
Buffer[BufferOffset]);
118 trace(
"Buffer[%lu] = %lu\n", BufferOffset + 1,
Buffer[BufferOffset + 1]);
127 ULONG StackBuffer[3] = { 0 };
static void LoopFunction(_Inout_updates_all_(BufferSize) volatile ULONG *Buffer, _In_ ULONG BufferSizeInElements, _In_ ULONG LoopCount)
void LOOP_FUNCTION(volatile ULONG *, ULONG, ULONG)
#define LOOP_FUNCTION_SIZE
#define LOOP_FUNCTION_SIZE_SHIFT
static void ProfileLoopFunction(_In_ LOOP_FUNCTION *Function, _Out_writes_bytes_(BufferSize) PULONG Buffer, _In_ ULONG BufferSize, _In_range_(0, BufferSize/sizeof(ULONG)) ULONG BufferOffset)
static KAFFINITY SystemAffinityMask
static ULONG DummyBuffer[4096]
#define ok_hex(expression, result)
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
#define STATUS_INVALID_HANDLE
#define NT_SUCCESS(StatCode)
#define GetCurrentProcess()
BOOL WINAPI GetProcessAffinityMask(IN HANDLE hProcess, OUT PDWORD_PTR lpProcessAffinityMask, OUT PDWORD_PTR lpSystemAffinityMask)
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 _Out_writes_bytes_(s)
#define _Inout_updates_all_(s)
#define NtCurrentProcess()
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
_In_ ULONG _In_ ULONG Offset
NTSTATUS NTAPI NtStopProfile(IN HANDLE ProfileHandle)
NTSTATUS NTAPI NtCreateProfile(OUT PHANDLE ProfileHandle, IN HANDLE Process OPTIONAL, IN PVOID RangeBase, IN SIZE_T RangeSize, IN ULONG BucketSize, IN PVOID Buffer, IN ULONG BufferSize, IN KPROFILE_SOURCE ProfileSource, IN KAFFINITY Affinity)
NTSTATUS NTAPI NtStartProfile(IN HANDLE ProfileHandle)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize