📄 interrup.l
字号:
BX = 0001h (virtual device ID for VMM) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02643)
0000h:0000h if the VxD does not support an API
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02643)
Call Windows VMM 16-bit entry point with:
AX = function number
---registry functions---
0100h "RegOpenKey"
STACK: DWORD -> DWORD for returned key handle
DWORD -> ASCIZ registry key name
DWORD HKEY (see #02644)
0101h "RegCreateKey"
STACK: DWORD -> DWORD for returned key handle
DWORD -> ASCIZ registry key name
DWORD HKEY (see #02644)
0102h "RegCloseKey"
STACK: DWORD key handle from RegOpenKey or RegCreateKey
0103h "RegDeleteKey"
STACK: DWORD -> ASCIZ registry key name
DWORD HKEY (see #02644)
0104h "RegSetValue"
STACK: DWORD ???
DWORD -> ???
DWORD ???
DWORD -> ???
DWORD HKEY (see #02644)
0105h "RegQueryValue"
STACK: DWORD -> DWORD for ???
DWORD -> ASCIZ ???
DWORD -> ASCIZ ???
DWORD HKEY (see #02644)
0106h "RegEnumKey"
STACK: DWORD ???
DWORD -> ASCIZ ???
DWORD ???
DWORD HKEY (see #02644)
0107h "RegDeleteValue"
0108h "RegEnumValue"
STACK: DWORD -> DWORD for ???
DWORD -> BYTE ???
DWORD -> DWORD for ???
DWORD -> DWORD for ???
DWORD -> DWORD for ???
DWORD -> ASCIZ ???
DWORD ???
DWORD HKEY (see #02644)
0109h "RegQueryValueEx"
010Ah "RegSetValueEx"
010Bh "RegFlushKey"
010Ch "RegLoadKey"
010Dh "RegUnLoadKey"
010Eh "RegSaveKey"
010Fh "RegRestore"
0110h "RegRemapPreDefKey"
Return: parameters popped from stack
DX:AX = return value
(Table 02644)
Values for Windows95 VMM predefined HKEY values:
80000000h HKEY_CLASSES_ROOT
80000001h HKEY_CURRENT_USER
80000002h HKEY_LOCAL_MACHINE
80000003h HKEY_USERS
80000004h HKEY_PERFORMANCE_DATA
80000005h HKEY_CURRENT_CONFIG
80000006h HKEY_DYN_DATA
SeeAlso: #02643
--------W-2F1684BX0003-----------------------
INT 2F - MS Windows - VPICD - GET API ENTRY POINT
AX = 1684h
BX = 0003h (virtual device ID for VPICD device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02645)
0000h:0000h if the VxD does not support an API
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02645)
Call VPICD API entry point with:
EAX = function number
0000h get version
Return: AX = binary version (AH=major, AL=minor)
0001h virtualize timer???
0002h unvirtualize timer???
--------W-2F1684BX0005-----------------------
INT 2F - MS Windows - VTD - GET API ENTRY POINT
AX = 1684h
BX = 0005h (virtual device ID for VTD device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02646)
0000h:0000h if the VxD does not support an API
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02646)
Call VTD.386/VTD.VXD entry point with:
AX = function number
0000h get VTD version number
Return: CF clear
AH = major version
AL = minor version
0100h get current clock tick time
Return: EDX:EAX = clock tick time in 840ns units since Windows
was started
0101h get current system time in milliseconds
Return: EAX = time in milliseconds that Windows has been
running
0102h get current virtual machine time
Return: EAX = cumulative amount of time the virtual machine has
been active, in milliseconds
Note: this entry point should only be called directly when TOOLHELP.DLL
TimerCount() cannot be called
SeeAlso: #01268,#01270,#01269 at INT 20"Windows"
--------W-2F1684BX0006-----------------------
INT 2F P - MS Windows95 - V86MMGR - GET API ENTRY POINT
AX = 1684h
BX = 0006h (virtual device ID for V86MMGR device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02647)
0000h:0000h if the VxD does not support API in current mode
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02647)
Call V86MMGR entry point with:
EAX = function number
0000h get V86MMGR version
Return: CF clear
AH = major version
AL = minor version
0001h get ???
Return: CF clear
EAX = status bits
bit 0: ???
bit 1: ???
bit 2: ???
bit 3: ???
bit 4: ???
else
Return: CF set
--------W-2F1684BX0009-----------------------
INT 2F P - MS Windows - REBOOT - GET API ENTRY POINT
AX = 1684h
BX = 0009h (virtual device ID for REBOOT device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02648)
0000h:0000h if the VxD does not support an API
SeeAlso: INT 14/AH=17h"FOSSIL",INT 16/AX=E0FFh
(Table 02648)
Call REBOOT protected-mode entry point with:
AX = function
0100h warm boot
Return: never
Note: broadcasts "Reboot_Processor" message, which is caught
by the VKD device
0201h set KERNEL Ctrl-Alt-Del handler
ES:DI -> new Ctrl-Alt-Del handler
DS:SI -> KERNEL reboot sanity check byte
Return: CF clear
Notes: if an application installs its own handler and then
chains to Windows' handler, Windows will no longer
be able to detect hung applications, and will always
produce an "Application not responding" dialog
DS must contain a writable, fixed selector because
the provided address is converted to a linear address
before being stored
when Ctrl-Alt-Del is pressed in the system VM, Reboot
sets the sanity check byte to zero, schedules a
750ms wait, and then tests whether the check byte is
still zero; if not, it displays a message that there
is no hung application and then exits
0202h get KERNEL Ctrl-Alt-Del handler
Return: CF clear
ES:DI -> current Ctrl-Alt-Del handler
Note: the default handler is located in KERNEL
0203h display "Application not responding" dialog box
ES:DI -> ASCIZ name of hung application
Return: never if user pressed Ctrl-Alt-Del a second time
CF clear
AX = result
0000h user pressed Esc
0001h user pressed Enter
Note: this function is used by the default Windows
Ctrl-Alt-Del handler
0204h set/reset protected-mode INT 01 handler
CX:EDX -> new protected-mode INT 01 handler
CX = 0000h restore protected-mode INT 01 handler
Return: CF clear
Notes: if CX is nonzero, the current handler address is saved
internally before the new handler is set; this saved
address is then used when CX is zero on entry
used by Windows' default Ctrl-Alt-Del handler; actual
fatal exit to DOS will be done on next INT 01
Warning: opened files are not closed and remain open as
orphaned files in DOS
Note: functions 0201h and 0203h are not useful outside the system VM
SeeAlso: #01271,#01273
--------W-2F1684BX000A-----------------------
INT 2F P - MS Windows - VDD - GET API ENTRY POINT
AX = 1684h
BX = 000Ah (virtual device ID for VDD device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02649)
0000h:0000h if the VxD does not support API in current mode
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02649)
Call VDD entry point with:
EAX = function
0000h get VDD version
Return: CF clear
AH = major version
AL = minor version
Note: also performs an internal initialization
0001h ???
Return: ECX = ???
???
0002h
0003h
0004h
0005h
0006h
0007h
0008h
0009h
0080h
0081h
0082h
0083h
0084h
0085h
0086h
0087h
0088h
0089h
else
Return: nothing
--------W-2F1684BX000C-----------------------
INT 2F - MS Windows - VMD - GET API ENTRY POINT
AX = 1684h
BX = 000Ch (virtual device ID for VMD device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02650)
0000h:0000h if the VxD does not support API in current mode
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02650)
Call VMOUSE entry point with:
EAX = function number
0000h get VMOUSE version
Return: CF clear
AH = major version
AL = minor version
0001h
EBX = ???
ECX = ???
Return: CF clear if successful
CF set on error (e.g. fn 0003h not yet called)
0002h ??? (calls "test system VM handle")
Return: CF clear if successful (in system VM)
CF set on error
0003h ???
ECX = ???
DX = ???
Return: CF clear
0004h ???
Note: invokes Call_Priority_VM_Event
0005h get mouse port data
Return: CF clear
AL = ??? (04h)
AH = mouse IRQ interrupt number (IRQ4=0Ch,etc.)
CX = mouse I/O port address (e.g. 03F8h)
DX = COM port number??? (0001h for mouse on COM1)
0100h NOP???
Return: CF clear
0101h init???
Return: CF clear
Note: appears to be the same as fn 0005h, but returns no data
0102h unimplemented
Return: CF set
0103h check ???
Return: AX = status (0000h/0001h)
Note: checks flag set by fn 0003h
else
Return: CF set
SeeAlso: #02649,#02651
--------W-2F1684BX000D-----------------------
INT 2F P - MS Windows - VKD - GET API ENTRY POINT
AX = 1684h
BX = 000Dh (virtual device ID for VKD device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02651)
0000h:0000h if the VxD does not support API in current mode
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02651)
Call VKD entry point with:
EAX = function
0000h get VKD version
Return: CF clear
AH = major version
AL = minor version
0001h ???
EBX = VM handle or 00000000h to use ??? VM handle
CH = ???
CL = ???
EDX = ??? or FFFFFFFFh
Return: CF clear if successful
CF set on error
else
Return: CF set
SeeAlso: #02650,#02652
--------W-2F1684BX000E-----------------------
INT 2F P - MS Windows - VCD - GET API ENTRY POINT
AX = 1684h
BX = 000Eh (virtual device ID for VCD device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02652)
0000h:0000h if the VxD does not support API in current mode
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02652)
Call VCD entry point with:
EDX = function number
0000h get VCD version
Return: CF clear
AH = major version
AL = minor version
0001h get ???
Return: CF clear
AX = bit mask of ???
0002h get ???
CX = COM port number
Return: CF clear
DX:AX -> ???
0003h set ???
CX = COM port number
DX:AX -> new ???
Return: CF clear
0004h acquire COM port
AX = ???
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -