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

📄 celognk.h

📁 wince下的源代码集合打包
💻 H
📖 第 1 页 / 共 2 页
字号:
//----------------------------------------------------------_inline void CELOG_MutexCloseHandle(HANDLE hMutex) {        CEL_MUTEX_CLOSE cl;        cl.hMutex = hMutex;    CELOGDATA(TRUE, CELID_MUTEX_CLOSE, &cl, sizeof(CEL_MUTEX_CLOSE), 0, CELZONE_SYNCH);}//----------------------------------------------------------_inline void CELOG_MutexDelete(HANDLE hMutex) {        CEL_MUTEX_DELETE cl;        cl.hMutex = hMutex;    CELOGDATA(TRUE, CELID_MUTEX_DELETE, &cl, sizeof(CEL_MUTEX_DELETE), 0, CELZONE_SYNCH);}//----------------------------------------------------------_inline void CELOG_SemaphoreCreate(HANDLE hSem, LONG lInitCount, LONG lMaxCount, LPCWSTR szName) {        BYTE pTmp[MAX_PATH+sizeof(CEL_SEM_CREATE)];    PCEL_SEM_CREATE pcl = (PCEL_SEM_CREATE) pTmp;    WORD wLen = 0;        pcl->hSem = hSem;    pcl->dwInitCount = (DWORD) lInitCount;    pcl->dwMaxCount = (DWORD) lMaxCount;        if (szName) {       wLen = strlenW(szName) + 1;       kstrcpyW(pcl->szName, szName);    }    CELOGDATA(TRUE, CELID_SEM_CREATE, (PVOID) pcl, (WORD) (sizeof(CEL_SEM_CREATE) + (wLen * sizeof(WCHAR))), 0, CELZONE_SYNCH);}//----------------------------------------------------------_inline void CELOG_SemaphoreRelease(HANDLE hSem, LONG lReleaseCount, LONG lPreviousCount) {        CEL_SEM_RELEASE cl;        cl.hSem = hSem;    cl.dwReleaseCount = (DWORD) lReleaseCount;    cl.dwPreviousCount = (DWORD) lPreviousCount;    CELOGDATA(TRUE, CELID_SEM_RELEASE, &cl, sizeof(CEL_SEM_RELEASE), 0, CELZONE_SYNCH);}//----------------------------------------------------------_inline void CELOG_SemaphoreCloseHandle(HANDLE hSem) {        CEL_SEM_CLOSE cl;        cl.hSem = hSem;    CELOGDATA(TRUE, CELID_SEM_CLOSE, &cl, sizeof(CEL_SEM_CLOSE), 0, CELZONE_SYNCH);}//----------------------------------------------------------_inline void CELOG_SemaphoreDelete(HANDLE hSem) {        CEL_SEM_DELETE cl;        cl.hSem = hSem;    CELOGDATA(TRUE, CELID_SEM_DELETE, &cl, sizeof(CEL_SEM_DELETE), 0, CELZONE_SYNCH);}//----------------------------------------------------------// Only logged if we block when entering_inline void CELOG_CSEnter(HANDLE hCS, HANDLE hOwnerThread) {        CEL_CRITSEC_ENTER cl;        cl.hCS = hCS;    cl.hOwnerThread = hOwnerThread;    CELOGDATA(TRUE, CELID_CS_ENTER, &cl, sizeof(CEL_CRITSEC_ENTER), 0, CELZONE_CRITSECT);}//----------------------------------------------------------// Only logged if another thread was blocked waiting for the CS_inline void CELOG_CSLeave(HANDLE hCS, HANDLE hNewOwner) {        CEL_CRITSEC_LEAVE cl;        cl.hCS = hCS;    cl.hOwnerThread = hNewOwner;    CELOGDATA(TRUE, CELID_CS_LEAVE, &cl, sizeof(CEL_CRITSEC_LEAVE), 0, CELZONE_CRITSECT);}//----------------------------------------------------------_inline void CELOG_VirtualAlloc(DWORD dwResult, DWORD dwAddress, DWORD dwSize, DWORD dwType, DWORD dwProtect) {        CEL_VIRTUAL_ALLOC cl;    cl.dwResult = dwResult;    cl.dwAddress = dwAddress;    cl.dwSize = dwSize;    cl.dwType = dwType;    cl.dwProtect = dwProtect;        CELOGDATA(TRUE, CELID_VIRTUAL_ALLOC, &cl, sizeof(CEL_VIRTUAL_ALLOC), 0, CELZONE_VIRTMEM);}//----------------------------------------------------------_inline void CELOG_VirtualCopy(DWORD dwDest, DWORD dwSource, DWORD dwSize, DWORD dwProtect) {        CEL_VIRTUAL_COPY cl;    cl.dwDest = dwDest;    cl.dwSource = dwSource;    cl.dwSize = dwSize;    cl.dwProtect = dwProtect;        CELOGDATA(TRUE, CELID_VIRTUAL_COPY, &cl, sizeof(CEL_VIRTUAL_COPY), 0, CELZONE_VIRTMEM);}//----------------------------------------------------------_inline void CELOG_VirtualFree(DWORD dwAddress, DWORD dwSize, DWORD dwType) {        CEL_VIRTUAL_FREE cl;    cl.dwAddress = dwAddress;    cl.dwSize = dwSize;    cl.dwType = dwType;        CELOGDATA(TRUE, CELID_VIRTUAL_FREE, &cl, sizeof(CEL_VIRTUAL_FREE), 0, CELZONE_VIRTMEM);}//----------------------------------------------------------_inline void CELOG_SystemTLB(DWORD dwCount) {        CEL_SYSTEM_TLB cl;        cl.dwCount = dwCount;    CELOGDATA(TRUE, CELID_SYSTEM_TLB, &cl, sizeof(CEL_SYSTEM_TLB), 0, CELZONE_TLB);}//----------------------------------------------------------_inline void CELOG_SystemPage(DWORD dwAddress, BOOL fReadWrite) {        CEL_SYSTEM_PAGE cl;        cl.dwAddress = dwAddress;    cl.fReadWrite = fReadWrite;    CELOGDATA(TRUE, CELID_SYSTEM_PAGE, &cl, sizeof(CEL_SYSTEM_PAGE), 0, CELZONE_DEMANDPAGE);}//----------------------------------------------------------_inline void CELOG_SystemInvert(HANDLE hThread, int nPriority) {        CEL_SYSTEM_INVERT cl;        cl.hThread = hThread;    cl.nPriority = nPriority;    CELOGDATA(TRUE, CELID_SYSTEM_INVERT, &cl, sizeof(CEL_SYSTEM_INVERT), 0, CELZONE_PRIORITYINV);}//----------------------------------------------------------_inline void CELOG_ThreadSetPriority(HANDLE hThread, int nPriority) {        CEL_THREAD_PRIORITY cl;        cl.hThread = hThread;    cl.nPriority = nPriority;    CELOGDATA(TRUE, CELID_THREAD_PRIORITY, &cl, sizeof(CEL_THREAD_PRIORITY), 0, CELZONE_THREAD);}//----------------------------------------------------------_inline void CELOG_ThreadSetQuantum(HANDLE hThread, DWORD dwQuantum) {        CEL_THREAD_QUANTUM cl;        cl.hThread = hThread;    cl.dwQuantum = dwQuantum;    CELOGDATA(TRUE, CELID_THREAD_QUANTUM, &cl, sizeof(CEL_THREAD_QUANTUM), 0, CELZONE_THREAD);}//----------------------------------------------------------_inline void CELOG_ThreadSuspend(HANDLE hThread) {        CEL_THREAD_SUSPEND cl;        cl.hThread = hThread;    CELOGDATA(TRUE, CELID_THREAD_SUSPEND, &cl, sizeof(CEL_THREAD_SUSPEND), 0, CELZONE_RESCHEDULE);}//----------------------------------------------------------_inline void CELOG_ThreadResume(HANDLE hThread) {        CEL_THREAD_RESUME cl;        cl.hThread = hThread;    CELOGDATA(TRUE, CELID_THREAD_RESUME, &cl, sizeof(CEL_THREAD_RESUME), 0, CELZONE_RESCHEDULE);}//----------------------------------------------------------_inline void CELOG_ModuleLoad(HANDLE hProcess, HANDLE hModule, LPCWSTR szName, DWORD dwBaseOffset) {        if (hModule) {       BYTE pTmp[MAX_PATH+max(sizeof(CEL_MODULE_LOAD), sizeof(CEL_MEMTRACK_LOADMODULE))];       PCEL_MODULE_LOAD pcl = (PCEL_MODULE_LOAD) pTmp;       PCEL_MEMTRACK_LOADMODULE pcl2 = (PCEL_MEMTRACK_LOADMODULE) pTmp;       WORD wLen = 0;             pcl->hProcess = hProcess;       pcl->hModule = hModule;             if (szName) {          wLen = strlenW(szName) + 1;          kstrcpyW(pcl->szName, szName);       }          CELOGDATA(TRUE, CELID_MODULE_LOAD, (PVOID) pcl, (WORD) (sizeof(CEL_MODULE_LOAD) + (wLen * sizeof(WCHAR))), 0, CELZONE_LOADER);       pcl2->hProcess = hProcess;       pcl2->hModule  = hModule;       pcl2->dwBase   = dwBaseOffset;              if (wLen)          kstrcpyW(pcl2->szName, szName);       CELOGDATA(TRUE, CELID_MEMTRACK_LOADMODULE, (PVOID) pcl2, (WORD) (sizeof(CEL_MEMTRACK_LOADMODULE) + (wLen * sizeof(WCHAR))), 0, CELZONE_MEMTRACKING);    }}//----------------------------------------------------------_inline void CELOG_ModuleFree(HANDLE hProcess, HANDLE hModule, DWORD fReally) {        CEL_MODULE_FREE cl;        cl.hProcess = hProcess;    cl.hModule = hModule;    CELOGDATA(TRUE, CELID_MODULE_FREE, &cl, sizeof(CEL_MODULE_FREE), 0, CELZONE_LOADER);    if (fReally) {        CEL_MEMTRACK_FREEMODULE cl2;        	cl2.hProcess = hProcess;    	cl2.hModule  = hModule;    	CELOGDATA(TRUE, CELID_MEMTRACK_FREEMODULE, &cl2, sizeof(CEL_MEMTRACK_FREEMODULE), 0, CELZONE_MEMTRACKING);    }}//----------------------------------------------------------#define CELOG_KCallEnter(nID) \    CELOGDATA(TRUE, CELID_KCALL_ENTER, &nID, sizeof(int), 0, CELZONE_KCALL)//----------------------------------------------------------#define CELOG_KCallLeave(nID) \    CELOGDATA(TRUE, CELID_KCALL_LEAVE, &nID, sizeof(int), 0, CELZONE_KCALL)#else//------------------------------------------------------------------------------//  Normal operation (NK.LIB)//#define CELOGINIT()                                                    ((void)0)#define CELOGCREATETHREAD()                                            ((void)0)#define CELOGDATA(Time, ID, Data, Len, Zone1, Zone2)                   ((void)0)#define CELOGDATAFLAGGED(Time, ID, Data, Len, Zone1, Zone2, Flag)      ((void)0)// The kernel wrappers#define CELOG_ThreadSwitch(hThread)                                    ((void)0)#define CELOG_ThreadMigrate(hProcess, dwReserved)                      ((void)0)#define CELOG_Sleep(dwTimeout)                                         ((void)0)#define CELOG_ThreadCreate(pThread, hProc, lpProcName)                 ((void)0)#define CELOG_ThreadCloseHandle(hThread)                               ((void)0)#define CELOG_ThreadTerminate(hThread)                                 ((void)0)#define CELOG_ThreadDelete(hThread)                                    ((void)0)#define CELOG_ProcessCreate(hProc, lpProcName, dwBase)                 ((void)0)#define CELOG_ProcessCloseHandle(hProc)                                ((void)0)#define CELOG_ProcessTerminate(hProc)                                  ((void)0)#define CELOG_ProcessDelete(hProc)                                     ((void)0)#define CELOG_EventCreate(hEvent, fmanReset, fInitState, lpEventName)  ((void)0)#define CELOG_Event(hEvent, type)                                      ((void)0)#define CELOG_EventCloseHandle(hEvent)                                 ((void)0)#define CELOG_EventDelete(hEvent)                                      ((void)0)#define CELOG_WaitForMultipleObjects(dwNumObjects, lpHandles, fWaitAll, dwTimeout) ((void)0)#define CELOG_MutexCreate(hMutex, pName)                               ((void)0)#define CELOG_MutexRelease(hMutex)                                     ((void)0)#define CELOG_MutexCloseHandle(hMutex)                                 ((void)0)#define CELOG_MutexDelete(hMutex)                                      ((void)0)#define CELOG_SemaphoreCreate(hSem, lInitCount, lMaxCount, szName)     ((void)0)#define CELOG_SemaphoreRelease(hSem, lReleaseCount, lPreviousCount)    ((void)0)#define CELOG_SemaphoreCloseHandle(hSem)                               ((void)0)#define CELOG_SemaphoreDelete(hSem)                                    ((void)0)#define CELOG_CSEnter(lpcs, hOwnerThread)                              ((void)0)#define CELOG_CSLeave(lpcs, hNewOwner)                                 ((void)0)#define CELOG_VirtualAlloc(dwResult, dwAddress, dwSize, dwType, dwProtect) ((void)0)#define CELOG_VirtualCopy(dwDest, dwSource, dwSize, dwProtect)         ((void)0)#define CELOG_VirtualFree(dwAddress, dwSize, dwType)                   ((void)0)#define CELOG_SystemTLB(dwCount)                                       ((void)0)#define CELOG_SystemPage(dwAddress, fReadWrite)                        ((void)0)#define CELOG_SystemInvert(hThread, nPriority)                         ((void)0)#define CELOG_ThreadSetPriority(hThread, nPriority)                    ((void)0)#define CELOG_ThreadSetQuantum(hThread, dwQuantum)                     ((void)0)#define CELOG_ModuleLoad(hProcess, hModule, szName, dwOffset)  	     ((void)0)#define CELOG_ModuleFree(hProcess, hModule, fReally)                   ((void)0)#define CELOG_KCallEnter(nID)                                          ((void)0)#define CELOG_KCallLeave(nID)                                          ((void)0)#define CELOG_ThreadSuspend(hThread)                                   ((void)0)#define CELOG_ThreadResume(hThread)                                    ((void)0)#endif      #endif

⌨️ 快捷键说明

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