91 lines
1.5 KiB
C
91 lines
1.5 KiB
C
#ifndef _AMLI_HOOK_
|
|
#define _AMLI_HOOK_
|
|
|
|
|
|
extern ULONG g_AmliHookEnabled;
|
|
|
|
#define AMLIHOOK_ENABLED_VALUE 608
|
|
|
|
//
|
|
// AcpitlTestFlags
|
|
//
|
|
|
|
#define AMLIHOOK_TEST_FLAGS_HOOK_API 1
|
|
#define AMLIHOOK_TEST_FLAGS_DBG_ON_ERROR 2
|
|
#define AMLIHOOK_TEST_FLAGS_NO_NOTIFY_ON_CALL 4
|
|
|
|
#define AMLIHOOK_TEST_FLAGS_HOOK_MASK ((ULONG)(AMLIHOOK_TEST_FLAGS_HOOK_API))
|
|
|
|
//
|
|
// AMLIHOOK_DATA call back data struct
|
|
//
|
|
|
|
|
|
typedef struct _AMLIHOOK_DATA
|
|
{
|
|
UCHAR Type;
|
|
UCHAR SubType;
|
|
ULONG State;
|
|
ULONG Id;
|
|
ULONG_PTR Arg1;
|
|
ULONG_PTR Arg2;
|
|
ULONG_PTR Arg3;
|
|
ULONG_PTR Arg4;
|
|
ULONG_PTR Arg5;
|
|
ULONG_PTR Arg6;
|
|
ULONG_PTR Arg7;
|
|
NTSTATUS Ret;
|
|
} AMLIHOOK_DATA , *PAMLIHOOK_DATA;
|
|
|
|
//
|
|
//--- state member
|
|
//
|
|
#define AMLIHOOK_TEST_DATA_STATE_CALL 1
|
|
#define AMLIHOOK_TEST_DATA_STATE_RETURN 2
|
|
#define AMLIHOOK_TEST_DATA_STATE_ASYNC_CALL 3
|
|
#define AMLIHOOK_TEST_DATA_STATE_QUERY 4
|
|
|
|
#define AMLIHOOK_TEST_DATA_CALL_STATE_MASK (AMLIHOOK_TEST_DATA_STATE_CALL | AMLIHOOK_TEST_DATA_STATE_ASYNC_CALL)
|
|
|
|
|
|
#define AMLIHOOK_CALLBACK_NAME L"\\Callback\\AMLIHOOK"
|
|
|
|
#define IsAmliHookEnabled() g_AmliHookEnabled
|
|
|
|
ULONG
|
|
AmliHook_GetDbgFlags(
|
|
VOID);
|
|
|
|
VOID
|
|
AmliHook_InitTestData(
|
|
PAMLIHOOK_DATA Data);
|
|
|
|
PAMLIHOOK_DATA
|
|
AmliHook_AllocAndInitTestData(
|
|
VOID);
|
|
|
|
NTSTATUS
|
|
AmliHook_InitTestHookInterface(
|
|
VOID);
|
|
|
|
VOID
|
|
AmliHook_UnInitTestHookInterface(
|
|
VOID);
|
|
|
|
NTSTATUS
|
|
AmliHook_TestNotify(
|
|
PAMLIHOOK_DATA Data);
|
|
|
|
NTSTATUS
|
|
AmliHook_TestNotifyRet(
|
|
PAMLIHOOK_DATA Data,
|
|
NTSTATUS Status);
|
|
|
|
VOID
|
|
AmliHook_ProcessInternalError(
|
|
VOID);
|
|
|
|
#endif
|
|
|
|
|