📄 vmm.h
字号:
VMM_Service (Call_When_VM_Ints_Enabled)
VMM_Service (Enable_VM_Ints)
VMM_Service (Disable_VM_Ints)
VMM_Service (Map_Flat)
VMM_Service (Map_Lin_To_VM_Addr)
// Scheduler services
VMM_Service (Adjust_Exec_Priority)
VMM_Service (Begin_Critical_Section)
VMM_Service (End_Critical_Section)
VMM_Service (End_Crit_And_Suspend)
VMM_Service (Claim_Critical_Section)
VMM_Service (Release_Critical_Section)
VMM_Service (Call_When_Not_Critical)
VMM_Service (Create_Semaphore)
VMM_Service (Destroy_Semaphore)
VMM_Service (Wait_Semaphore)
VMM_Service (Signal_Semaphore)
VMM_Service (Get_Crit_Section_Status)
VMM_Service (Call_When_Task_Switched)
VMM_Service (Suspend_VM)
VMM_Service (Resume_VM)
VMM_Service (No_Fail_Resume_VM)
VMM_Service (Nuke_VM)
VMM_Service (Crash_Cur_VM)
VMM_Service (Get_Execution_Focus)
VMM_Service (Set_Execution_Focus)
VMM_Service (Get_Time_Slice_Priority)
VMM_Service (Set_Time_Slice_Priority)
VMM_Service (Get_Time_Slice_Granularity)
VMM_Service (Set_Time_Slice_Granularity)
VMM_Service (Get_Time_Slice_Info)
VMM_Service (Adjust_Execution_Time)
VMM_Service (Release_Time_Slice)
VMM_Service (Wake_Up_VM)
VMM_Service (Call_When_Idle)
VMM_Service (Get_Next_VM_Handle)
// Time-out and system timer services
VMM_Service (Set_Global_Time_Out)
VMM_Service (Set_VM_Time_Out)
VMM_Service (Cancel_Time_Out)
VMM_Service (Get_System_Time)
VMM_Service (Get_VM_Exec_Time)
VMM_Service (Hook_V86_Int_Chain)
VMM_Service (Get_V86_Int_Vector)
VMM_Service (Set_V86_Int_Vector)
VMM_Service (Get_PM_Int_Vector)
VMM_Service (Set_PM_Int_Vector)
VMM_Service (Simulate_Int)
VMM_Service (Simulate_Iret)
VMM_Service (Simulate_Far_Call)
VMM_Service (Simulate_Far_Jmp)
VMM_Service (Simulate_Far_Ret)
VMM_Service (Simulate_Far_Ret_N)
VMM_Service (Build_Int_Stack_Frame)
VMM_Service (Simulate_Push)
VMM_Service (Simulate_Pop)
// Heap Manager
VMM_Service (_HeapAllocate)
VMM_Service (_HeapReAllocate)
VMM_Service (_HeapFree)
VMM_Service (_HeapGetSize)
/*ENDMACROS*/
/****************************************************
*
* Flags for heap allocator calls
*
* NOTE: HIGH 8 BITS (bits 24-31) are reserved
*
***************************************************/
#define HEAPZEROINIT 0x00000001
#define HEAPZEROREINIT 0x00000002
#define HEAPNOCOPY 0x00000004
#define HEAPLOCKEDIFDP 0x00000100
#define HEAPSWAP 0x00000200
#define HEAPINIT 0x00000400
#define HEAPCLEAN 0x00000800
// Page Manager
/*MACROS*/
VMM_Service (_PageAllocate)
VMM_Service (_PageReAllocate)
VMM_Service (_PageFree)
VMM_Service (_PageLock)
VMM_Service (_PageUnLock)
VMM_Service (_PageGetSizeAddr)
VMM_Service (_PageGetAllocInfo)
VMM_Service (_GetFreePageCount)
VMM_Service (_GetSysPageCount)
VMM_Service (_GetVMPgCount)
VMM_Service (_MapIntoV86)
VMM_Service (_PhysIntoV86)
VMM_Service (_TestGlobalV86Mem)
VMM_Service (_ModifyPageBits)
VMM_Service (_CopyPageTable)
VMM_Service (_LinMapIntoV86)
VMM_Service (_LinPageLock)
VMM_Service (_LinPageUnLock)
VMM_Service (_SetResetV86Pageable)
VMM_Service (_GetV86PageableArray)
VMM_Service (_PageCheckLinRange)
VMM_Service (_PageOutDirtyPages)
VMM_Service (_PageDiscardPages)
/*ENDMACROS*/
/****************************************************
*
* Flags for other page allocator calls
*
* NOTE: HIGH 8 BITS (bits 24-31) are reserved
*
***************************************************/
#define PAGEZEROINIT 0x00000001
#define PAGEUSEALIGN 0x00000002
#define PAGECONTIG 0x00000004
#define PAGEFIXED 0x00000008
#define PAGEDEBUGNULFAULT 0x00000010
#define PAGEZEROREINIT 0x00000020
#define PAGENOCOPY 0x00000040
#define PAGELOCKED 0x00000080
#define PAGELOCKEDIFDP 0x00000100
#define PAGESETV86PAGEABLE 0x00000200
#define PAGECLEARV86PAGEABLE 0x00000400
#define PAGESETV86INTSLOCKED 0x00000800
#define PAGECLEARV86INTSLOCKED 0x00001000
#define PAGEMARKPAGEOUT 0x00002000
#define PAGEPDPSETBASE 0x00004000
#define PAGEPDPCLEARBASE 0x00008000
#define PAGEDISCARD 0x00010000
#define PAGEPDPQUERYDIRTY 0x00020000
#define PAGEMAPFREEPHYSREG 0x00040000
#define PAGENOMOVE 0x10000000
#define PAGEMAPGLOBAL 0x40000000
#define PAGEMARKDIRTY 0x80000000
/****************************************************
*
* Flags for _PhysIntoV86,
* _MapIntoV86, and _LinMapIntoV86
*
***************************************************/
#define MAPV86_IGNOREWRAP 0x00000001
// Informational services
/*MACROS*/
VMM_Service (_GetNulPageHandle)
VMM_Service (_GetFirstV86Page)
VMM_Service (_MapPhysToLinear)
VMM_Service (_GetAppFlatDSAlias)
VMM_Service (_SelectorMapFlat)
VMM_Service (_GetDemandPageInfo)
VMM_Service (_GetSetPageOutCount)
/*ENDMACROS*/
/*
* Flags bits for _GetSetPageOutCount
*/
#define GSPOC_F_GET 0x00000001
// Device VM page manager
/*MACROS*/
VMM_Service (Hook_V86_Page)
VMM_Service (_Assign_Device_V86_Pages)
VMM_Service (_DeAssign_Device_V86_Pages)
VMM_Service (_Get_Device_V86_Pages_Array)
VMM_Service (MMGR_SetNULPageAddr)
// GDT/LDT management
VMM_Service (_Allocate_GDT_Selector)
VMM_Service (_Free_GDT_Selector)
VMM_Service (_Allocate_LDT_Selector)
VMM_Service (_Free_LDT_Selector)
VMM_Service (_BuildDescriptorDWORDs)
VMM_Service (_GetDescriptor)
VMM_Service (_SetDescriptor)
/*ENDMACROS*/
/*
* Flag equates for _BuildDescriptorDWORDs
*/
#define BDDEXPLICITDPL 0x00000001
/*
* Flag equates for _Allocate_LDT_Selector
*/
#define ALDTSPECSEL 0x00000001
/*MACROS*/
VMM_Service (_MMGR_Toggle_HMA)
/*ENDMACROS*/
/*
* Flag equates for _MMGR_Toggle_HMA
*/
#define MMGRHMAPHYSICAL 0x00000001
#define MMGRHMAENABLE 0x00000002
#define MMGRHMADISABLE 0x00000004
#define MMGRHMAQUERY 0x00000008
/*MACROS*/
VMM_Service (Get_Fault_Hook_Addrs)
VMM_Service (Hook_V86_Fault)
VMM_Service (Hook_PM_Fault)
VMM_Service (Hook_VMM_Fault)
VMM_Service (Begin_Nest_V86_Exec)
VMM_Service (Begin_Nest_Exec)
VMM_Service (Exec_Int)
VMM_Service (Resume_Exec)
VMM_Service (End_Nest_Exec)
VMM_Service (Allocate_PM_App_CB_Area, VMM_ICODE)
VMM_Service (Get_Cur_PM_App_CB)
VMM_Service (Set_V86_Exec_Mode)
VMM_Service (Set_PM_Exec_Mode)
VMM_Service (Begin_Use_Locked_PM_Stack)
VMM_Service (End_Use_Locked_PM_Stack)
VMM_Service (Save_Client_State)
VMM_Service (Restore_Client_State)
VMM_Service (Exec_VxD_Int)
VMM_Service (Hook_Device_Service)
VMM_Service (Hook_Device_V86_API)
VMM_Service (Hook_Device_PM_API)
VMM_Service (System_Control)
// I/O and software interrupt hooks
VMM_Service (Simulate_IO)
VMM_Service (Install_Mult_IO_Handlers)
VMM_Service (Install_IO_Handler)
VMM_Service (Enable_Global_Trapping)
VMM_Service (Enable_Local_Trapping)
VMM_Service (Disable_Global_Trapping)
VMM_Service (Disable_Local_Trapping)
// Linked List Abstract Data Type Services
VMM_Service (List_Create)
VMM_Service (List_Destroy)
VMM_Service (List_Allocate)
VMM_Service (List_Attach)
VMM_Service (List_Attach_Tail)
VMM_Service (List_Insert)
VMM_Service (List_Remove)
VMM_Service (List_Deallocate)
VMM_Service (List_Get_First)
VMM_Service (List_Get_Next)
VMM_Service (List_Remove_First)
/*ENDMACROS*/
/*
* Flags used by List_Create
*/
#define LF_ASYNC_BIT 0
#define LF_ASYNC (1 << LF_ASYNC_BIT)
#define LF_USE_HEAP_BIT 1
#define LF_USE_HEAP (1 << LF_USE_HEAP_BIT)
#define LF_ALLOC_ERROR_BIT 2
#define LF_ALLOC_ERROR (1 << LF_ALLOC_ERROR_BIT)
/*
* Swappable lists must use the heap.
*/
#define LF_SWAP (LF_USE_HEAP + (1 << 3))
/******************************************************************************
* I N I T I A L I Z A T I O N P R O C E D U R E S
******************************************************************************/
// Instance data manager
/*MACROS*/
VMM_Service (_AddInstanceItem)
// System structure data manager
VMM_Service (_Allocate_Device_CB_Area)
VMM_Service (_Allocate_Global_V86_Data_Area, VMM_ICODE)
VMM_Service (_Allocate_Temp_V86_Data_Area, VMM_ICODE)
VMM_Service (_Free_Temp_V86_Data_Area, VMM_ICODE)
/*ENDMACROS*/
/*
* Flag bits for _Allocate_Global_V86_Data_Area
*/
#define GVDAWordAlign 0x00000001
#define GVDADWordAlign 0x00000002
#define GVDAParaAlign 0x00000004
#define GVDAPageAlign 0x00000008
#define GVDAInstance 0x00000100
#define GVDAZeroInit 0x00000200
#define GVDAReclaim 0x00000400
#define GVDAInquire 0x00000800
#define GVDAHighSysCritOK 0x00001000
#define GVDAOptInstance 0x00002000
#define GVDAForceLow 0x00004000
/*
* Flag bits for _Allocate_Temp_V86_Data_Area
*/
#define TVDANeedTilInitComplete 0x00000001
// Initialization information calls (win.ini and environment parameters)
/*MACROS*/
VMM_Service (Get_Profile_Decimal_Int, VMM_ICODE)
VMM_Service (Convert_Decimal_String, VMM_ICODE)
VMM_Service (Get_Profile_Fixed_Point, VMM_ICODE)
VMM_Service (Convert_Fixed_Point_String, VMM_ICODE)
VMM_Service (Get_Profile_Hex_Int, VMM_ICODE)
VMM_Service (Convert_Hex_String, VMM_ICODE)
VMM_Service (Get_Profile_Boolean, VMM_ICODE)
VMM_Service (Convert_Boolean_String, VMM_ICODE)
VMM_Service (Get_Profile_String, VMM_ICODE)
VMM_Service (Get_Next_Profile_String, VMM_ICODE)
VMM_Service (Get_Environment_String, VMM_ICODE)
VMM_Service (Get_Exec_Path, VMM_ICODE)
VMM_Service (Get_Config_Directory, VMM_ICODE)
VMM_Service (OpenFile, VMM_ICODE)
/*ENDMACROS*/
// OpenFile, if called after init, must point EDI to a buffer of at least
// this size.
#define VMM_OPENFILE_BUF_SIZE 260
/*MACROS*/
VMM_Service (Get_PSP_Segment, VMM_ICODE)
VMM_Service (GetDOSVectors, VMM_ICODE)
VMM_Service (Get_Machine_Info)
/*ENDMACROS*/
#define GMIF_80486_BIT 0x10
#define GMIF_80486 (1 << GMIF_80486_BIT)
#define GMIF_PCXT_BIT 0x11
#define GMIF_PCXT (1 << GMIF_PCXT_BIT)
#define GMIF_MCA_BIT 0x12
#define GMIF_MCA (1 << GMIF_MCA_BIT)
#define GMIF_EISA_BIT 0x13
#define GMIF_EISA (1 << GMIF_EISA_BIT)
#define GMIF_CPUID_BIT 0x14
#define GMIF_CPUID (1 << GMIF_CPUID_BIT)
// Following service is not restricted to initialization
/*MACROS*/
VMM_Service (GetSet_HMA_Info)
VMM_Service (Set_System_Exit_Code)
VMM_Service (Fatal_Error_Handler)
VMM_Service (Fatal_Memory_Error)
// Called by VTD only
VMM_Service (Update_System_Clock)
/******************************************************************************
* D E B U G G I N G E X T E R N S
******************************************************************************/
VMM_Service (Test_Debug_Installed) // Valid call in retail also
VMM_Service (Out_Debug_String)
VMM_Service (Out_Debug_Chr)
VMM_Service (In_Debug_Chr)
VMM_Service (Debug_Convert_Hex_Binary)
VMM_Service (Debug_Convert_Hex_Decimal)
VMM_Service (Debug_Test_Valid_Handle)
VMM_Service (Validate_Client_Ptr)
VMM_Service (Test_Reenter)
VMM_Service (Queue_Debug_String)
VMM_Service (Log_Proc_Call)
VMM_Service (Debug_Test_Cur_VM)
VMM_Service (Get_PM_Int_Type)
VMM_Service (Set_PM_Int_Type)
VMM_Service (Get_Last_Updated_System_Time)
VMM_Service (Get_Last_Updated_VM_Exec_Time)
VMM_Service (Test_DBCS_Lead_Byte) // for DBCS Enabling
/*ENDMACROS*/
/* ASM
.errnz @@Test_DBCS_Lead_Byte - 100D1h ; VMM service table changed above this service
*/
/*************************************************************************
*************************************************************************
* END OF 3.00 SERVICE TABLE MUST NOT SHUFFLE SERVICES BEFORE THIS POINT
* FOR COMPATIBILITY.
*************************************************************************
*************************************************************************/
/*MACROS*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -