📄 vxbuild.h
字号:
// VOID OnEndPmApp(HVM hVM, struct pmcb_s* pPmcb);
#define ON_END_PM_APP(f) case END_PM_APP: \
f((HVM)r_ebx, (struct pmcb_s*)r_edi); \
break;
// VOID OnDeviceRebootNotify();
#define ON_DEVICE_REBOOT_NOTIFY(f) case DEVICE_REBOOT_NOTIFY: \
f(); \
break;
// VOID OnCritRebootNotify();
#define ON_CRIT_REBOOT_NOTIFY(f) case CRIT_REBOOT_NOTIFY: \
f(); \
break;
// VOID OnCloseVmNotify(HVM hVM, DWORD fFlags);
#define ON_CLOSE_VM_NOTIFY(f) case CLOSE_VM_NOTIFY: \
f((HVM)r_ebx, r_edx); \
break;
// VOID OnPowerEvent(DWORD nEvent, PDWORD pdwReturn);
#define ON_POWER_EVENT(f) case POWER_EVENT: \
f(r_esi, (PDWORD)r_edi); \
break;
// BOOL OnSysDynamicDeviceInit();
#define ON_SYS_DYNAMIC_DEVICE_INIT(f) case SYS_DYNAMIC_DEVICE_INIT: \
f(); \
{_asm cmp eax, 1} \
return;
// BOOL OnSysDynamicDeviceExit();
#define ON_SYS_DYNAMIC_DEVICE_EXIT(f) case SYS_DYNAMIC_DEVICE_EXIT: \
f(); \
{_asm cmp eax, 1} \
return;
// BOOL OnCreateThread(PTCB pTcb);
#define ON_CREATE_THREAD(f) case CREATE_THREAD: \
f((PTCB)r_edi); \
{_asm cmp eax, 1} \
return;
// VOID OnThreadInit(PTCB pTcb);
#define ON_THREAD_INIT(f) case THREAD_INIT: \
f((PTCB)r_edi); \
break;
// VOID OnTerminateThread(PTCB pTcb);
#define ON_TERMINATE_THREAD(f) case TERMINATE_THREAD: \
f((PTCB)r_edi); \
break;
// VOID OnThreadNotExecuteable(PTCB pTcb);
#define ON_THREAD_NOT_EXECUTEABLE(f) case THREAD_NOT_EXECUTEABLE: \
f((PTCB)r_edi); \
break;
// VOID OnDestroyThread(PTCB pTcb);
#define ON_DESTROY_THREAD(f) case DESTROY_THREAD: \
f((PTCB)r_edi); \
break;
// CONFIGRET OnPnpNewDevnode(DWORD devNode, DWORD nLoadType);
#define ON_PNP_NEW_DEVNODE(f) case PNP_NEW_DEVNODE: \
f(r_ebx, r_edx); \
{_asm stc} \
return;
// DWORD OnW32DeviceIoControl(DWORD dwService, DWORD dwDDB,
// DWORD hDevice, struct DIOCParams* lpDIOCParms);
#define ON_W32_DEVICEIOCONTROL(f) case W32_DEVICEIOCONTROL: \
f(r_ecx, r_ebx, r_edx, (struct DIOCParams*)(r_esi)); \
{_asm cmp eax, 1} \
return;
// OnSysVmTerminate2(HVM hVM);
#define ON_SYS_VM_TERMINATE_2(f) case SYS_VM_TERMINATE_2: \
f((HVM)r_ebx); \
break;
// VOID OnSystemExit2(HVM hVM);
#define ON_SYSTEM_EXIT_2(f) case SYSTEM_EXIT_2: \
f((HVM)r_ebx); \
break;
// VOID OnSysCriticalExit2();
#define ON_SYS_CRITICAL_EXIT_2(f) case SYS_CRITICAL_EXIT_2: \
f(); \
break;
// VOID OnVmTerminate2(HVM hVM);
#define ON_VM_TERMINATE_2(f) case VM_TERMINATE_2: \
f((HVM)r_ebx); \
break;
// VOID OnVmNotExecutable2(HVM hVM, DWORD fFlags);
#define ON_VM_NOT_EXECUTEABLE_2(f) case VM_NOT_EXECUTEABLE_2: \
f((HVM)r_ebx, r_edx); \
break;
// VOID OnDestroyVm2(HVM hVM);
#define ON_DESTORY_VM_2(f) case DESTROY_VM_2: \
f((HVM)r_ebx); \
break;
// VOID OnVmSuspend2(HVM hVM);
#define ON_VM_SUSPEND_2(f) case VM_SUSPEND_2: \
f((HVM)r_ebx); \
break;
// VOID OnEndMessageMode2(HVM hVM);
#define ON_END_MESSAGE_MODE_2(f) case END_MESSAGE_MODE_2: \
f((HVM)r_ebx); \
break;
// VOID OnEndPmApp2(HVM hVM, struct pmcb_s* pPmcb);
#define ON_END_PM_APP_2(f) case END_PM_APP_2: \
f((HVM)r_ebx, (struct pmcb_s*)r_edi); \
break;
// VOID OnDeviceRebootNotify2();
#define ON_DEVICE_REBOOT_NOTIFY_2(f) case DEVICE_REBOOT_NOTIFY_2: \
f(); \
break;
// VOID OnCritRebootNotify();
#define ON_CRIT_REBOOT_NOTIFY_2(f) case CRIT_REBOOT_NOTIFY_2: \
f(); \
break;
// VOID OnCloseVmNotify(HVM hVM, DWORD fFlags);
#define ON_CLOSE_VM_NOTIFY_2(f) case CLOSE_VM_NOTIFY_2: \
f((HVM)r_ebx, r_edx); \
break;
// PCONTENTION_HANDLER OnGetContentionHandler();
typedef DWORD (*PCONTENTION_HANDLER)(int, ...);
#define ON_GET_CONTENTION_HANDLER(f) case GET_CONTENTION_HANDLER: \
f(); \
break;
// VOID OnKernel32Initialized()
#define ON_KERNEL_32_INITIALIZED(f) case KERNEL_32_INITIALIZED: \
f(); \
break;
// VOID OnKernel32Shutdown()
#define ON_KERNEL_32_SHUTDOWN(f) case KERNEL_32_SHUTDOWN: \
f(); \
break;
// DWORD OnXxx(DWORD r_eax, DWORD r_ebx, DWORD r_ecx,
// DWORD r_edx, DWORD r_edi, DWORD r_esi);
#define ON_OTHER_CONTROL_MSG(n,f) case n: \
f(r_eax, r_ebx, r_ecx, r_edx, r_edi, r_esi); \
{_asm cmp eax, 1} \
return;
#ifdef WIN98DDK
// In the Win98DDK, _LinPageUn*l*ock was changed to _LinPageUn*L*ock !
#define _LinPageUnlock PREPEND(_LinPageUnLock)
#endif
/////////////////// VMM Services in VXBUILD.CLB
MAKE_HEADER(HEVENT,_stdcall,Call_Priority_VM_Event,(DWORD PriorityBoost, \
HVM hVM, DWORD Flags, const void* pRefData, \
VMM_EVENT_HANDLER pfnEvent, DWORD Timeout))
MAKE_HEADER(HEVENT,_stdcall,Schedule_Thread_Event,(PTCB ptcb, \
VMM_EVENT_HANDLER pfnEvent, PVOID pRefData))
MAKE_HEADER(void,_stdcall,Cancel_Thread_Event,(ULONG hThread, HEVENT hEvent))
#ifndef WIN98DDK
// Use different names to avoid conflicts with the wrappers provided by the Win98 DDK.
MAKE_HEADER(ULONG,_cdecl,_TetradynePageReserve, (ULONG page, ULONG npages, ULONG flags))
MAKE_HEADER(ULONG,_cdecl,_TetradynePageCommitPhys, (ULONG page, ULONG npages, ULONG physpage, ULONG flags))
#define _PageReserve PREPEND(_TetradynePageReserve)
#define _PageCommitPhys PREPEND(_TetradynePageCommitPhys)
#endif
MAKE_HEADER(BOOL,_stdcall,Test_Sys_VM_Handle, (HVM hVM))
MAKE_HEADER(BOOL,_stdcall,Validate_VM_Handle, (HVM hVM))
MAKE_HEADER(void,_stdcall,Call_When_VM_Returns, (LONG TimeOut, PVOID RefData, ULONG Callback))
MAKE_HEADER(HEVENT,_stdcall,Schedule_VM_Event, (HVM hVM, ULONG EventCallback, PVOID RefData))
MAKE_HEADER(HEVENT,_stdcall,Call_Global_Event, (ULONG GlobalEventCallback, PVOID RefData))
MAKE_HEADER(HEVENT,_stdcall,Call_VM_Event, (HVM hVM, ULONG EventCallback, PVOID RefData))
MAKE_HEADER(void,_stdcall,Cancel_VM_Event, (HANDLE hEvent))
MAKE_HEADER(void,_stdcall,Cancel_Priority_VM_Event, (HVM hVM, HANDLE hEvent))
MAKE_HEADER(PVOID,_stdcall,Map_Flat, (ULONG nSegment, ULONG nOffset))
MAKE_HEADER(BOOL,_stdcall,Map_Lin_To_VM_Addr, (ULONG LineAddr, ULONG Limit, PULONG pnSegment, PULONG pnOffset))
MAKE_HEADER(void,_stdcall,Adjust_Exec_Priority, (ULONG PriorityBoost, HVM hVM))
MAKE_HEADER(BOOL,_stdcall,End_Crit_And_Suspend, ())
MAKE_HEADER(void,_stdcall,Claim_Critical_Section, (ULONG Claims, BOOL Flags))
MAKE_HEADER(void,_stdcall,Release_Critical_Section, (ULONG Claims))
MAKE_HEADER(void,_stdcall,Call_When_Not_Critical, (ULONG CritSecCallback, PVOID RefData))
MAKE_HEADER(BOOL,_stdcall,Get_Crit_Section_Status, (HVM* phVM, PULONG pnClaims))
MAKE_HEADER(void,_stdcall,Call_When_Task_Switched, (ULONG TaskSwitchCallback))
MAKE_HEADER(BOOL,_stdcall,Suspend_VM, (HVM hVM))
MAKE_HEADER(BOOL,_stdcall,Resume_VM, (HVM hVM))
MAKE_HEADER(void,_stdcall,No_Fail_Resume_VM, (HVM hVM))
MAKE_HEADER(void,_stdcall,Nuke_VM, (HVM hVM))
MAKE_HEADER(void,_stdcall,Crash_Cur_VM, ())
MAKE_HEADER(BOOL,_stdcall,Set_Execution_Focus, (HVM hVM))
MAKE_HEADER(void,_stdcall,Get_Time_Slice_Info, (PULONG pnScheduled, HVM* phVM, PULONG pnIdle))
MAKE_HEADER(void,_stdcall,Release_Time_Slice, ())
MAKE_HEADER(void,_stdcall,Wake_Up_VM, (HVM hVM))
MAKE_HEADER(HANDLE,_stdcall,Get_Next_VM_Handle, (HVM hVM))
MAKE_HEADER(ULONG,_stdcall,Get_System_Time, ())
MAKE_HEADER(ULONG,_stdcall,Get_VM_Exec_Time, (HVM hVM))
MAKE_HEADER(void,_stdcall,Set_PM_Int_Vector, (ULONG Interrupt, ULONG Segment, ULONG Offset))
MAKE_HEADER(void,_stdcall,Simulate_Int, (ULONG Interrupt))
MAKE_HEADER(void,_stdcall,Simulate_Iret, ())
MAKE_HEADER(void,_stdcall,Simulate_Far_Call, (ULONG Segment, ULONG Offset))
MAKE_HEADER(void,_stdcall,Simulate_Far_Jmp, (ULONG Segment, ULONG Offset))
MAKE_HEADER(void,_stdcall,Simulate_Far_Ret, ())
MAKE_HEADER(void,_stdcall,Simulate_Far_Ret_N, (ULONG Bytes))
MAKE_HEADER(ULONG,_stdcall,Simulate_Pop, ())
MAKE_HEADER(void,_stdcall,Simulate_Push, (ULONG Value))
MAKE_HEADER(void,_stdcall,Build_Int_Stack_Frame, (ULONG Segment, ULONG Offset))
// MAKE_HEADER(BOOL,_cdecl,_ModifyPageBits, (HVM hVM, ULONG VMLinPgNum, ULONG nPages, ULONG bitAND, ULONG bitOR, PVOID pType, ULONG flags))
MAKE_HEADER(void,_stdcall,MMGR_SetNULPageAddr, (PVOID PhysAddr))
// MAKE_HEADER(BOOL,_cdecl,_Allocate_LDT_Selector, (HVM VM, ULONG DescDWORD1, ULONG DescDWORD2, ULONG Count, ULONG flags))
MAKE_HEADER(BOOL,_stdcall,Hook_VMM_Fault, (ULONG FaultNo, ULONG pfnFaultProc, PULONG pfnPrevious))
MAKE_HEADER(void,_stdcall,Exec_Int, (ULONG Interrupt))
MAKE_HEADER(ULONG,_stdcall,Allocate_PM_App_CB_Area, (ULONG Size))
MAKE_HEADER(void,_stdcall,Save_Client_State, (PVOID Buffer))
MAKE_HEADER(void,_stdcall,Restore_Client_State, (PVOID Buffer))
MAKE_HEADER(void,_stdcall,Exec_VxD_Int, (ULONG Interrupt, PREGISTERS pReg))
// MAKE_HEADER(BOOL,_stdcall,Hook_Device_Service...
MAKE_HEADER(BOOL,_stdcall,System_Control, (PVOID Message, HVM hVM, PVOID Param1, PVOID Param2, PVOID Param3, HVM* phVM, PTCB* pptcb))
MAKE_HEADER(ULONG,_stdcall,Simulate_IO, (PVOID Data, HVM hVM, PVOID IOType, ULONG Port, PVOID crs))
MAKE_HEADER(BOOL,_stdcall,Install_Mult_IO_Handlers, (PVOID IOTable))
MAKE_HEADER(BOOL,_stdcall,Install_IO_Handler, (PVOID IOCallback, ULONG Port))
MAKE_HEADER(void,_stdcall,Enable_Global_Trapping, (ULONG Port))
MAKE_HEADER(void,_stdcall,Enable_Local_Trapping, (HVM hVM, ULONG Port))
MAKE_HEADER(void,_stdcall,Disable_Global_Trapping, (ULONG Port))
MAKE_HEADER(void,_stdcall,Disable_Local_Trapping, (HVM hVM, ULONG Port))
MAKE_HEADER(BOOL,_cdecl,_AddInstanceItem, (ULONG InstStruc, ULONG flags))
MAKE_HEADER(BOOL,_cdecl,_Allocate_Device_CB_Area, (ULONG nBytes, ULONG flags))
MAKE_HEADER(ULONG,_stdcall,Get_Profile_Decimal_Int, (PCHAR pszSection, PCHAR pszKeyName, ULONG nDefault, PULONG pnFlags))
MAKE_HEADER(ULONG,_stdcall,Get_Profile_Fixed_Point, (PCHAR pszSection, PCHAR pszKeyName, ULONG nPlaces, ULONG nDefault, PULONG pnFlags))
MAKE_HEADER(PCHAR,_stdcall,Convert_Decimal_String, (PCHAR pszString, PULONG pnValue))
MAKE_HEADER(PCHAR,_stdcall,Convert_Fixed_Point_String, (ULONG nPlaces, PCHAR pszString, PULONG pnValue))
MAKE_HEADER(PCHAR,_stdcall,Convert_Hex_String, (PCHAR pszString, PULONG pnValue))
MAKE_HEADER(BOOL,_stdcall,Convert_Boolean_String, (PCHAR pszString, PBOOL pbValue))
MAKE_HEADER(PCHAR,_stdcall,Get_Profile_String, (PCHAR pszSection, PCHAR pszKeyName, PCHAR pszDefault, PULONG pnFlags))
MAKE_HEADER(ULONG,_stdcall,Get_Next_Profile_String, (PCHAR pszSection, PCHAR pszKeyName, PULONG pnFlags))
MAKE_HEADER(ULONG,_stdcall,OpenFile, (PVOID Filename, PVOID Buffer))
MAKE_HEADER(ULONG,_stdcall,Get_PSP_Segment, ())
MAKE_HEADER(void,_stdcall,Set_PM_Int_Type, (ULONG Interrupt, BOOL bType))
MAKE_HEADER(ULONG,_stdcall,Get_Last_Updated_VM_Exec_Time, (HVM hVM))
MAKE_HEADER(BOOL,_stdcall,Get_Name_Of_Ugly_TSR, (PCHAR pszTSR))
MAKE_HEADER(void,_stdcall,Set_Physical_HMA_Alias, (PVOID Entries))
MAKE_HEADER(BOOL,_stdcall,Get_Crit_Status_No_Block, (HVM* phVM, PULONG pnCount))
MAKE_HEADER(ULONG,_cdecl,_GetLastUpdatedThreadExecTime, (PTCB ThreadHandle))
MAKE_HEADER(ULONG,_cdecl,_AllocateThreadDataSlot, ())
MAKE_HEADER(void,_cdecl,_FreeThreadDataSlot, (ULONG DataSlotOffset))
MAKE_HEADER(void,_stdcall,Call_When_Thread_Switched, (PVOID ThreadSwitchCallback))
MAKE_HEADER(BOOL,_cdecl,_GetThreadExecTime, (PTCB ptcb))
MAKE_HEADER(BOOL,_stdcall,Test_Cur_Thread_Handle, (PTCB ptcb))
MAKE_HEADER(HANDLE,_stdcall,Get_Sys_Thread_Handle, ())
MAKE_HEADER(BOOL,_stdcall,Test_Sys_Thread_Handle, (PTCB ptcb))
MAKE_HEADER(BOOL,_stdcall,Validate_Thread_Handle, (PTCB ptcb))
MAKE_HEADER(HANDLE,_stdcall,Get_Initial_Thread_Handle, (HVM hVM))
MAKE_HEADER(BOOL,_stdcall,Test_Initial_Thread_Handle, (PTCB ptcb))
MAKE_HEADER(HANDLE,_stdcall,Get_Next_Thread_Handle, ())
MAKE_HEADER(BOOL,_cdecl,_Deallocate_Device_CB_Area, (ULONG Control_Block_Offset, ULONG Flags))
MAKE_HEADER(BOOL,_stdcall,Remove_IO_Handler, (PVOID IO_Port_Address))
MAKE_HEADER(BOOL,_stdcall,Remove_Mult_IO_Handlers, (PVOID VxD_IO_Table))
MAKE_HEADER(BOOL,_stdcall,Unhook_Device_Service, (PVOID HookProc))
MAKE_HEADER(ULONG,_cdecl,_PageCommit, (ULONG page, ULONG npages, ULONG hpd, ULONG pagerdata, ULONG flags))
MAKE_HEADER(BOOL,_stdcall,Cancel_Call_When_Not_Critical, (PVOID CritSecCallback))
MAKE_HEADER(void,_stdcall,Signal_Semaphore_No_Switch, (HANDLE SemaphoreHandle))
MAKE_HEADER(BOOL,_stdcall,Get_Crit_Status_Thread, (PULONG pnCount, PTCB* pptcb))
MAKE_HEADER(BOOL,_stdcall,Time_Slice_Sleep, (ULONG Timeout))
MAKE_HEADER(ULONG,_cdecl,_CopyPageTable, (ULONG nLinPage, ULONG nPages, PVOID pBuf, ULONG fFlags))
#define Call_Priority_VM_Event PREPEND(Call_Priority_VM_Event)
#define Schedule_Thread_Event PREPEND(Schedule_Thread_Event)
#define Cancel_Thread_Event PREPEND(Cancel_Thread_Event)
#define Test_Sys_VM_Handle PREPEND(Test_Sys_VM_Handle)
#define Validate_VM_Handle PREPEND(Validate_VM_Handle)
#define Call_When_VM_Returns PREPEND(Call_When_VM_Returns)
#define Schedule_VM_Event PREPEND(Schedule_VM_Event)
#define Call_Global_Event PREPEND(Call_Global_Event)
#define Call_VM_Event PREPEND(Call_VM_Event)
#define Cancel_VM_Event PREPEND(Cancel_VM_Event)
#define Cancel_Priority_VM_Event PREPEND(Cancel_Priority_VM_Event)
#define Map_Flat PREPEND(Map_Flat)
#define Map_Lin_To_VM_Addr PREPEND(Map_Lin_To_VM_Addr)
#define Adjust_Exec_Priority PREPEND(Adjust_Exec_Priority)
#define End_Crit_And_Suspend PREPEND(End_Crit_And_Suspend)
#define Claim_Critical_Section PREPEND(Claim_Critical_Section)
#define Release_Critical_Section PREPEND(Release_Critical_Section)
#define Call_When_Not_Critical PREPEND(Call_When_Not_Critical)
#define Get_Crit_Section_Status PREPEND(Get_Crit_Section_Status)
#define Call_When_Task_Switched PREPEND(Call_When_Task_Switched)
#define Suspend_VM PREPEND(Suspend_VM)
#define Resume_VM PREPEND(Resume_VM)
#define No_Fail_Resume_VM PREPEND(No_Fail_Resume_VM)
#define Nuke_VM PREPEND(Nuke_VM)
#define Crash_Cur_VM PREPEND(Crash_Cur_VM)
#define Set_Execution_Focus PREPEND(Set_Execution_Focus)
#define Get_Time_Slice_Info PREPEND(Get_Time_Slice_Info)
#define Release_Time_Slice PREPEND(Release_Time_Slice)
#define Wake_Up_VM PREPEND(Wake_Up_VM)
#define Get_Next_VM_Handle PREPEND(Get_Next_VM_Handle)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -