mirror of
https://github.com/vosen/ZLUDA.git
synced 2025-04-25 01:54:43 +00:00
76 lines
2.3 KiB
C++
Vendored
76 lines
2.3 KiB
C++
Vendored
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Detour Test Program (sleepnew.cpp of sleepnew.exe)
|
|
//
|
|
// Microsoft Research Detours Package
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
|
|
#include <windows.h>
|
|
#include <stdio.h>
|
|
#include "slept.h"
|
|
|
|
#include "verify.cpp"
|
|
|
|
int __cdecl main(void)
|
|
{
|
|
printf("sleepnew.exe: Starting.\n");
|
|
Verify("SleepEx", (PBYTE)SleepEx);
|
|
printf("\n");
|
|
fflush(stdout);
|
|
|
|
printf("sleepnew.exe: Calling Sleep for 1 second.\n");
|
|
Sleep(1000);
|
|
printf("sleepnew.exe: Calling SleepEx for 1 second.\n");
|
|
SleepEx(1000, true);
|
|
printf("sleepnew.exe: Calling Sleep again for 1 second.\n");
|
|
Sleep(1000);
|
|
printf("sleepnew.exe: Calling TimedSleep for 1 second.\n");
|
|
TimedSleepEx(1000, FALSE);
|
|
printf("sleepnew.exe: Calling UntimedSleep for 1 second.\n");
|
|
UntimedSleepEx(1000, FALSE);
|
|
printf("sleepnew.exe: Done sleeping.\n\n");
|
|
|
|
#if 0
|
|
// This code enumerates the virtual address space and attempts to reserve
|
|
// all unused space below 8GB.
|
|
//
|
|
for (PBYTE pbTry = (PBYTE)0x10000; pbTry < (PBYTE)0x200000000;) {
|
|
MEMORY_BASIC_INFORMATION mbi;
|
|
|
|
if (!VirtualQuery(pbTry, &mbi, sizeof(mbi))) {
|
|
break;
|
|
}
|
|
|
|
if (mbi.State == MEM_FREE && mbi.RegionSize > 0x10000) {
|
|
PBYTE pbBase = (PBYTE)((((ULONG_PTR)pbTry) + 0xffff) & 0xffffffffffff0000);
|
|
SIZE_T cbTry = mbi.RegionSize & 0xffffffffffff0000;
|
|
if (cbTry > 0x40000000) {
|
|
cbTry = 0x40000000;
|
|
}
|
|
PVOID pvRegion = VirtualAlloc(pbBase, cbTry,
|
|
MEM_RESERVE,
|
|
PAGE_NOACCESS);
|
|
if (pvRegion == NULL) {
|
|
printf("---%p..%p failed.\n", pbBase, mbi.RegionSize - 0x10000);
|
|
}
|
|
else {
|
|
continue;
|
|
}
|
|
}
|
|
|
|
printf(" %p..%p %6x [%p]\n",
|
|
mbi.BaseAddress, (PBYTE)mbi.BaseAddress + mbi.RegionSize - 1,
|
|
mbi.State,
|
|
pbTry);
|
|
|
|
pbTry = (PBYTE)mbi.BaseAddress + mbi.RegionSize;
|
|
}
|
|
#endif
|
|
|
|
printf("sleepnew.exe: GetSleptTicks() = %ld\n\n", GetSleptTicks());
|
|
return 0;
|
|
}
|
|
//
|
|
///////////////////////////////////////////////////////////////// End of File.
|