vmm.inc
来自「用于查询PC机上的USB端口是否有设备挂接上」· INC 代码 · 共 2,876 行 · 第 1/5 页
INC
2,876 行
GCIF_FPU EQU (1 SHL GCIF_FPU_BIT)
GCIF_VME_BIT EQU 1
GCIF_VME EQU (1 SHL GCIF_VME_BIT)
GCIF_DE_BIT EQU 2
GCIF_DE EQU (1 SHL GCIF_DE_BIT)
GCIF_PSE_BIT EQU 3
GCIF_PSE EQU (1 SHL GCIF_PSE_BIT)
GCIF_TSC_BIT EQU 4
GCIF_TSC EQU (1 SHL GCIF_TSC_BIT)
GCIF_MSR_BIT EQU 5
GCIF_MSR EQU (1 SHL GCIF_MSR_BIT)
GCIF_PAE_BIT EQU 6
GCIF_PAE EQU (1 SHL GCIF_PAE_BIT)
GCIF_MCE_BIT EQU 7
GCIF_MCE EQU (1 SHL GCIF_MCE_BIT)
GCIF_CXS_BIT EQU 8
GCIF_CXS EQU (1 SHL GCIF_CXS_BIT)
GCIF_APIC_BIT EQU 9
GCIF_APIC EQU (1 SHL GCIF_APIC_BIT)
GCIF_MTTR_BIT EQU 12
GCIF_MTTR EQU (1 SHL GCIF_MTTR_BIT)
GCIF_PGE_BIT EQU 13
GCIF_PGE EQU (1 SHL GCIF_PGE_BIT)
GCIF_MCA_BIT EQU 14
GCIF_MCA EQU (1 SHL GCIF_MCA_BIT)
GCIF_CMOV_BIT EQU 15
GCIF_CMOV EQU (1 SHL GCIF_CMOV_BIT)
endif
ifdef WIN41SERVICES
VMM_Service _RegisterGARTHandler
VMM_Service _GARTReserve
VMM_Service _GARTCommit
VMM_Service _GARTUnCommit
VMM_Service _GARTFree
VMM_Service _GARTMemAttributes
VMM_StdCall_Service KfRaiseIrqlToDpcLevel, 0
VMM_Service VMMCreateThreadEx
VMM_Service _FlushCaches
PG_UNCACHED EQU 00000001H
PG_WRITECOMBINED EQU 00000002H
FLUSHCACHES_NORMAL EQU 00000000H
FLUSHCACHES_GET_CACHE_LINE_PTR EQU 00000001H
FLUSHCACHES_GET_CACHE_SIZE_PTR EQU 00000002H
FLUSHCACHES_TAKE_OVER EQU 00000003H
FLUSHCACHES_FORCE_PAGES_OUT EQU 00000004H
FLUSHCACHES_LOCK_LOCKABLE EQU 00000005H
FLUSHCACHES_UNLOCK_LOCKABLE EQU 00000006H
FLUSHCACHES_CRASH_DUMP EQU 00000007H
FLUSHCACHES_PREPARE_S2_OR_S3 EQU 00000008H
FLUSHCACHES_PREPARE_FOR_HIBERNATE EQU 00000009H
FLUSHCACHES_BUILD_HIBERNATE_FILE EQU 0000000AH
FLUSHCACHES_WRITE_HIBERNATE_FILE EQU 0000000BH
FLUSHCACHES_UNPREPARE_FOR_HIBERNATE EQU 0000000CH
FLUSHCACHES_GET_ACPI_TABLES EQU 0000000DH
FLUSHCACHES_PREALLOC_HIBERNATE_FILE EQU 0000000EH
FLUSHCACHES_FREE_HIBERNATE_BLOCK EQU 0000000FH
VMM_Service Set_Thread_Win32_Pri_NoYield
VMM_Service _FlushMappedCacheBlock
VMM_Service _ReleaseMappedCacheBlock
VMM_Service Run_Preemptable_Events
VMM_Service _MMPreSystemExit
VMM_Service _MMPageFileShutDown
VMM_Service _Set_Global_Time_Out_Ex
VMM_Service Query_Thread_Priority
endif
ifdef WIN49SERVICES
VMM_Service _UnmapPhysToLinear
VMM_Service _VmmRtInfo
ifdef MULTI_PROC_SUPPORT
VMM_Service _MPGetProcessorCount
VMM_Service _MPEnterSingleProcessor
VMM_Service _MPLeaveSingleProcessor
endif
endif
End_Service_Table VMM, VMM
COMNFS_FLAT EQU 0FFFFFFFFH
RS_RECLAIM EQU 00000001H
RS_RESTORE EQU 00000002H
RS_DOSARENA EQU 00000004H
ReclaimStruc STRUC
RS_Linear DD ?
RS_Bytes DD ?
RS_CallBack DD ?
RS_RefData DD ?
RS_HookTable DD ?
RS_Flags DD ?
ReclaimStruc ENDS
frmtx STRUC
frmtx_pfrmtxNext DD ?
frmtx_hmutex DD ?
frmtx_cEnterCount DD ?
frmtx_pthcbOwner DD ?
frmtx_htimeout DD ?
frmtx ENDS
vmmfrinfo STRUC
vmmfrinfo_frmtxDOS DB SIZE frmtx DUP (?)
vmmfrinfo_frmtxV86 DB SIZE frmtx DUP (?)
vmmfrinfo_frmtxOther DB SIZE frmtx DUP (?)
vmmfrinfo ENDS
DemandInfoStruc STRUC
DILin_Total_Count DD ?
DIPhys_Count DD ?
DIFree_Count DD ?
DIUnlock_Count DD ?
DILinear_Base_Addr DD ?
DILin_Total_Free DD ?
DIPage_Faults DD ?
DIPage_Ins DD ?
DIPage_Outs DD ?
DIPage_Discards DD ?
DIInstance_Faults DD ?
DIPagingFileMax DD ?
DIPagingFileInUse DD ?
DICommit_Count DD ?
DIReserved DD 2 DUP (?)
DemandInfoStruc ENDS
InstDataStruc STRUC
InstLinkF DD 0
InstLinkB DD 0
InstLinAddr DD ?
InstSize DD ?
InstType DD ?
InstDataStruc ENDS
INDOS_FIELD EQU 100H
ALWAYS_FIELD EQU 200H
OPTIONAL_FIELD EQU 400H
IPF_Data STRUC
IPF_LinAddr DD ?
IPF_MapPageNum DD ?
IPF_PTEEntry DD ?
IPF_FaultingVM DD ?
IPF_Flags DD ?
IPF_Data ENDS
Exception_Handler_Struc STRUC
EH_Reserved DD ?
EH_Start_EIP DD ?
EH_End_EIP DD ?
EH_Handler DD ?
Exception_Handler_Struc ENDS
PR_PRIVATE EQU 80000400H
PR_SHARED EQU 80060000H
PR_SYSTEM EQU 80080000H
PR_FIXED EQU 00000008H
PR_4MEG EQU 00000001H
PR_STATIC EQU 00000010H
PD_ZEROINIT EQU 00000001H
PD_NOINIT EQU 00000002H
PD_FIXEDZERO EQU 00000003H
PD_FIXED EQU 00000004H
PC_FIXED EQU 00000008H
PC_LOCKED EQU 00000080H
PC_LOCKEDIFDP EQU 00000100H
PC_WRITEABLE EQU 00020000H
PC_USER EQU 00040000H
PC_INCR EQU 40000000H
PC_PRESENT EQU 80000000H
PC_STATIC EQU 20000000H
PC_DIRTY EQU 08000000H
PC_CACHEDIS EQU 00100000H
PC_CACHEWT EQU 00080000H
PC_PAGEFLUSH EQU 00008000H
ifdef WRITE_WATCH
PC_WRITE_WATCH EQU 00200000H
endif
PCC_ZEROINIT EQU 00000001H
PCC_NOLIN EQU 10000000H
MTRR_UC EQU 0
MTRR_WC EQU 1
MTRR_WT EQU 4
MTRR_WP EQU 5
MTRR_WB EQU 6
ifndef _WINNT_
_MEMORY_BASIC_INFORMATION STRUC
mbi_BaseAddress DD ?
mbi_AllocationBase DD ?
mbi_AllocationProtect DD ?
mbi_RegionSize DD ?
mbi_State DD ?
mbi_Protect DD ?
mbi_Type DD ?
_MEMORY_BASIC_INFORMATION ENDS
PAGE_NOACCESS EQU 01H
PAGE_READONLY EQU 02H
PAGE_READWRITE EQU 04H
MEM_COMMIT EQU 1000H
MEM_RESERVE EQU 2000H
MEM_FREE EQU 10000H
MEM_PRIVATE EQU 20000H
endif
pd_s STRUC
pd_virginin DD ?
pd_taintedin DD ?
pd_cleanout DD ?
pd_dirtyout DD ?
pd_virginfree DD ?
pd_taintedfree DD ?
pd_dirty DD ?
pd_type DD ?
pd_s ENDS
PD_SWAPPER EQU 0
PD_PAGERONLY EQU 1
PD_NESTEXEC EQU 2
endif
PAGESHIFT EQU 12
PAGESIZE EQU (1 SHL PAGESHIFT)
PAGEMASK EQU (PAGESIZE-1)
MAXSYSTEMLADDR EQU (0ffbfffffH)
MINSYSTEMLADDR EQU (0c0000000H)
MAXSHAREDLADDR EQU (0bfffffffH)
MINSHAREDLADDR EQU (80000000H)
MAXPRIVATELADDR EQU (7fffffffH)
MINPRIVATELADDR EQU (00400000H)
MAXDOSLADDR EQU (003fffffH)
MINDOSLADDR EQU (00000000H)
MAXSYSTEMPAGE EQU (MAXSYSTEMLADDR SHR PAGESHIFT)
MINSYSTEMPAGE EQU (MINSYSTEMLADDR SHR PAGESHIFT)
MAXSHAREDPAGE EQU (MAXSHAREDLADDR SHR PAGESHIFT)
MINSHAREDPAGE EQU (MINSHAREDLADDR SHR PAGESHIFT)
MAXPRIVATEPAGE EQU (MAXPRIVATELADDR SHR PAGESHIFT)
MINPRIVATEPAGE EQU (MINPRIVATELADDR SHR PAGESHIFT)
MAXDOSPAGE EQU (MAXDOSLADDR SHR PAGESHIFT)
MINDOSPAGE EQU (MINDOSLADDR SHR PAGESHIFT)
CBPRIVATE EQU (1+MAXPRIVATELADDR-MINPRIVATELADDR)
CBSHARED EQU (1+MAXSHAREDLADDR-MINSHAREDLADDR)
CBSYSTEM EQU (1+MAXSYSTEMLADDR-MINSYSTEMLADDR)
CBDOS EQU (1+MAXDOSLADDR-MINDOSLADDR)
CPGPRIVATE EQU (1+MAXPRIVATEPAGE-MINPRIVATEPAGE)
CPGSHARED EQU (1+MAXSHAREDPAGE-MINSHAREDPAGE)
CPGSYSTEM EQU (1+MAXSYSTEMPAGE-MINSYSTEMPAGE)
CPGDOS EQU (1+MAXDOSPAGE-MINDOSPAGE)
IFDEF DEBUG
DebFar EQU NEAR PTR
ELSE
DebFar EQU SHORT
ENDIF
ASD_MAX_REF_DATA EQU 256
_vmmguid STRUC
Data1 DD ?
Data2 DW ?
Data3 DW ?
Data4 DB 8 DUP (?)
_vmmguid ENDS
ASD_ERROR_NONE EQU 00000000H
ASD_CHECK_FAIL EQU 00000001H
ASD_CHECK_SUCCESS EQU 00000002H
ASD_CHECK_UNKNOWN EQU 00000003H
ASD_ERROR_BAD_TIME EQU 00000004H
ASD_REGISTRY_ERROR EQU 00000005H
ASD_CLEAN_BOOT EQU 00000006H
ASD_OUT_OF_MEMORY EQU 00000007H
ASD_FILE_ERROR EQU 00000008H
ASD_ALREADY_SET EQU 00000009H
ASD_MISSING_CHECK EQU 0000000AH
ASD_BAD_PARAMETER EQU 0000000BH
ASD_OP_CHECK_AND_WRITE_FAIL_IF_UNKNOWN EQU 00000000H
ASD_OP_CHECK_AND_ALWAYS_WRITE_FAIL EQU 00000001H
ASD_OP_CHECK EQU 00000002H
ASD_OP_DONE_AND_SET_SUCCESS EQU 00000003H
ASD_OP_SET_FAIL EQU 00000004H
ASD_OP_SET_SUCCESS EQU 00000005H
ASD_OP_SET_UNKNOWN EQU 00000006H
ASD_OP_DONE EQU 00000007H
ASD_FLAG_STRING EQU 00000001H
ifndef Not_VxD
SYS_CRITICAL_INIT EQU 0000H
DEVICE_INIT EQU 0001H
INIT_COMPLETE EQU 0002H
SYS_VM_INIT EQU 0003H
SYS_VM_TERMINATE EQU 0004H
SYSTEM_EXIT EQU 0005H
SYS_CRITICAL_EXIT EQU 0006H
CREATE_VM EQU 0007H
VM_CRITICAL_INIT EQU 0008H
VM_INIT EQU 0009H
VM_TERMINATE EQU 000AH
VM_NOT_EXECUTEABLE EQU 000BH
DESTROY_VM EQU 000CH
VNE_CRASHED_BIT EQU 00H
VNE_CRASHED EQU (1 SHL VNE_CRASHED_BIT)
VNE_NUKED_BIT EQU 01H
VNE_NUKED EQU (1 SHL VNE_NUKED_BIT)
VNE_CREATEFAIL_BIT EQU 02H
VNE_CREATEFAIL EQU (1 SHL VNE_CREATEFAIL_BIT)
VNE_CRINITFAIL_BIT EQU 03H
VNE_CRINITFAIL EQU (1 SHL VNE_CRINITFAIL_BIT)
VNE_INITFAIL_BIT EQU 04H
VNE_INITFAIL EQU (1 SHL VNE_INITFAIL_BIT)
VNE_CLOSED_BIT EQU 05H
VNE_CLOSED EQU (1 SHL VNE_CLOSED_BIT)
VM_SUSPEND EQU 000DH
VM_RESUME EQU 000EH
SET_DEVICE_FOCUS EQU 000FH
BEGIN_MESSAGE_MODE EQU 0010H
END_MESSAGE_MODE EQU 0011H
REBOOT_PROCESSOR EQU 0012H
QUERY_DESTROY EQU 0013H
DEBUG_QUERY EQU 0014H
BEGIN_PM_APP EQU 0015H
BPA_32_BIT EQU 01H
BPA_32_BIT_FLAG EQU 1
END_PM_APP EQU 0016H
DEVICE_REBOOT_NOTIFY EQU 0017H
CRIT_REBOOT_NOTIFY EQU 0018H
CLOSE_VM_NOTIFY EQU 0019H
CVNF_CRIT_CLOSE_BIT EQU 0
CVNF_CRIT_CLOSE EQU (1 SHL CVNF_CRIT_CLOSE_BIT)
POWER_EVENT EQU 001AH
SYS_DYNAMIC_DEVICE_INIT EQU 001BH
SYS_DYNAMIC_DEVICE_EXIT EQU 001CH
CREATE_THREAD EQU 001DH
THREAD_INIT EQU 001EH
TERMINATE_THREAD EQU 001FH
THREAD_Not_Executeable EQU 0020H
DESTROY_THREAD EQU 0021H
PNP_NEW_DEVNODE EQU 0022H
W32_DEVICEIOCONTROL EQU 0023H
DIOC_GETVERSION EQU 0H
DIOC_OPEN EQU DIOC_GETVERSION
DIOC_CLOSEHANDLE EQU -1
SYS_VM_TERMINATE2 EQU 0024H
SYSTEM_EXIT2 EQU 0025H
SYS_CRITICAL_EXIT2 EQU 0026H
VM_TERMINATE2 EQU 0027H
VM_NOT_EXECUTEABLE2 EQU 0028H
DESTROY_VM2 EQU 0029H
VM_SUSPEND2 EQU 002AH
END_MESSAGE_MODE2 EQU 002BH
END_PM_APP2 EQU 002CH
DEVICE_REBOOT_NOTIFY2 EQU 002DH
CRIT_REBOOT_NOTIFY2 EQU 002EH
CLOSE_VM_NOTIFY2 EQU 002FH
GET_CONTENTION_HANDLER EQU 0030H
KERNEL32_INITIALIZED EQU 0031H
KERNEL32_SHUTDOWN EQU 0032H
CREATE_PROCESS EQU 0033H
DESTROY_PROCESS EQU 0034H
ifndef WIN40COMPAT
SYS_DYNAMIC_DEVICE_REINIT EQU 0035H
endif
SYS_POWER_DOWN EQU 0036H
MAX_SYSTEM_CONTROL EQU 0036H
BEGIN_RESERVED_PRIVATE_SYSTEM_CONTROL EQU 70000000H
END_RESERVED_PRIVATE_SYSTEM_CONTROL EQU 7FFFFFFFH
endif
SYSSTATE_PRESYSCRITINIT EQU 00000000H
SYSSTATE_PREDEVICEINIT EQU 10000000H
SYSSTATE_PREINITCOMPLETE EQU 20000000H
SYSSTATE_VXDINITCOMPLETED EQU 40000000H
SYSSTATE_KERNEL32INITED EQU 50000000H
SYSSTATE_KERNEL32TERMINATED EQU 0A0000000H
SYSSTATE_PRESYSVMTERMINATE EQU 0B0000000H
SYSSTATE_PRESYSTEMEXIT EQU 0E0000000H
SYSSTATE_PRESYSTEMEXIT2 EQU 0E4000000H
SYSSTATE_PRESYSCRITEXIT EQU 0F0000000H
SYSSTATE_PRESYSCRITEXIT2 EQU 0F4000000H
SYSSTATE_POSTSYSCRITEXIT2 EQU 0FFF00000H
SYSSTATE_PREDEVICEREBOOT EQU 0FFFF0000H
SYSSTATE_PRECRITREBOOT EQU 0FFFFF000H
SYSSTATE_PREREBOOTCPU EQU 0FFFFFF00H
BeginDoc
EndDoc
??_pf_Check equ 1
??_pf_ArgsUsed equ 2
??_pf_Entered equ 4
??_pf_Left equ 8
??_pf_Returned equ 16
??_inline = 0
??_inline_end equ <>
??_pushed = 0
??_align = 0
??_ends equ <>
INLINE_MAGIC_W equ 02EBh
INLINE_MAGIC_B equ 0F1h
BeginProc macro Name, P1, P2, P3, P4, P5, P6, P7, LastArg
local Profile_Data, prelabeldata, ??_hookvar
??_frame = 0
??_aframe = 0
??_taframe = 0
??_initaframe = 0
??_numargs = 0
??_numlocals = 0
??_numlocalsymbols = 0
??_procflags = 0
??_esp = 0
??_pushed = 0
??_align = 0
??_hook = 0
??_inline = 0
??_hookarg = 0
??_service = 0
??_async_service = 0
IF DEBLEVEL GT DEBLEVELNORMAL
??_log = DFS_LOG
??_profile = DFS_PROFILE
??_test_cld = DFS_TEST_CLD
ELSE
??_log = 0
IFDEF DEBUG
IFDEF profileall
IF ?_ICODE
??_profile = DFS_PROFILE
ELSE
??_profile = 0
ENDIF
ELSE
??_profile = 0
ENDIF
ELSE
??_profile = 0
ENDIF
??_test_cld = 0
ENDIF
??_might_block = 0
??_test_reenter = 0
??_never_reenter = 0
??_not_swapping = 0
??_prolog_disabled = 0
??_public = 1
??_cleanoff = 0
??_ccall = 0
??_pcall = 0
??_scall = 0
??_fastcall = 0
??_w32svc = 0
??_fleave = FALSE
??_name equ <Name>
.errnb ??_ends, <Cannot nest functions with named segments>
.errnb <LastArg>, <Too many arguments to BeginProc>
irp arg, <P1, P2, P3, P4, P5, P6, P7>
if ??_hookarg
??_hookarg = 0
??_hookvar equ <arg>
elseifdef ?&&arg&&_BeginProc
?&&arg&&_BeginProc
elseifdef VxD_&&arg&&_CODE_SEG
??_ends textequ <VxD_&&arg&&_CODE_ENDS>
VxD_&&arg&&_CODE_SEG
else
.err <Bad param "&arg" to BeginProc>
endif
endm
ife ??_service
??_inline = 0
endif
ifndef Not_VxD
ife ??_service
ifndef profileall
??_profile = 0
endif
ifdef VMMSYS
??_prolog_disabled = 1
endif
else
??_test_cld = DFS_TEST_CLD
endif
ife ?_16ICODE
??_prolog_disabled = 1
else
ife ?_RCODE
??_prolog_disabled = 1
else
ife ?_PCODE
??_might_block = DFS_TEST_BLOCK
endif
if ??_service
ife ??_async_service
??_test_reenter = DFS_TEST_REENTER
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?