⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slept.cpp

📁 微软提供的截取Win32 API函数的开发包和例子detours-src-1.2.rar
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////
//
//	Module:		slept.dll
//	Author:		Galen C. Hunt
//	Copyright:	1996-1999, Microsoft Corporation
//
//	Version 1.2. (Build 35)
//

#define WIN32
#define NT

#include <windows.h>
#include "detours.h"
#include "slept.h"

LONG dwSlept = 0;

DETOUR_TRAMPOLINE(VOID WINAPI UntimedSleep(DWORD dwMilliseconds), Sleep);
 
VOID WINAPI TimedSleep(DWORD dwMilliseconds)
{
    DWORD dwBeg = GetTickCount();
    UntimedSleep(dwMilliseconds);
    DWORD dwEnd = GetTickCount();
    
    InterlockedExchangeAdd(&dwSlept, dwEnd - dwBeg);
}

DWORD WINAPI GetSleptTicks(VOID)
{
    return dwSlept;
}

BOOL WINAPI DllMain(HINSTANCE hinst, DWORD dwReason, LPVOID reserved)
{
    if (dwReason == DLL_PROCESS_ATTACH)
        DetourFunctionWithTrampoline((PBYTE)UntimedSleep, (PBYTE)TimedSleep);
    else if (dwReason == DLL_PROCESS_DETACH)
        DetourRemoveWithTrampoline((PBYTE)UntimedSleep, (PBYTE)TimedSleep);
    return TRUE;
}
//
///////////////////////////////////////////////////////////////// End of File.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -