2012-11-19 16:46:07 -06:00
|
|
|
#ifndef _METERPRETER_LIB_SCHEDULER_H
|
|
|
|
#define _METERPRETER_LIB_SCHEDULER_H
|
|
|
|
|
|
|
|
#include "linkage.h"
|
|
|
|
#include "remote.h"
|
|
|
|
|
2013-10-21 22:13:59 +10:00
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
Pause = 1,
|
|
|
|
Resume = 2,
|
|
|
|
Stop = 3
|
|
|
|
} SchedularSignal;
|
|
|
|
|
2013-10-22 16:43:22 +10:00
|
|
|
typedef DWORD (*WaitableNotifyRoutine)(Remote *remote, LPVOID entryContext, LPVOID threadContext);
|
|
|
|
typedef DWORD (*WaitableDestroyRoutine)(HANDLE waitable, LPVOID entryContext, LPVOID threadContext);
|
2012-11-19 16:46:07 -06:00
|
|
|
|
|
|
|
LINKAGE DWORD scheduler_initialize( Remote * remote );
|
|
|
|
LINKAGE DWORD scheduler_destroy( VOID );
|
2013-10-22 16:43:22 +10:00
|
|
|
LINKAGE DWORD scheduler_insert_waitable( HANDLE waitable, LPVOID entryContext, LPVOID threadContext, WaitableNotifyRoutine routine, WaitableDestroyRoutine destroy );
|
2013-10-21 22:13:59 +10:00
|
|
|
LINKAGE DWORD scheduler_signal_waitable( HANDLE waitable, SchedularSignal signal );
|
2012-11-19 16:46:07 -06:00
|
|
|
LINKAGE DWORD THREADCALL scheduler_waitable_thread( THREAD * thread );
|
|
|
|
|
|
|
|
#endif
|