INT 2F - MS Windows95 - VMM - GET API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. ENTRY POINT AX = 1684h BX = 0001h (virtual device ID for VMM) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxDA virtual device driver for Windows 3.x or 95. So called because nearly all of the Windows 3.0 drivers had names of the form "VdeviceD". See also device driver. API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. entry point (see #02643) 0000h:0000h if the VxDA virtual device driver for Windows 3.x or 95. So called because nearly all of the Windows 3.0 drivers had names of the form "VdeviceD". See also device driver. does not support an API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. SeeAlso: AX=1684h"DEVICE API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes.",INT 20"Windows" (Table 02643) Call Windows VMM 16-bit entry point with: AX = function number ---registry functions--- 0100h "RegOpenKey" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for returned key handle DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. registry key name DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. HKEY (see #02644) 0101h "RegCreateKey" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for returned key handle DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. registry key name DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. HKEY (see #02644) 0102h "RegCloseKey" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. key handle from RegOpenKey or RegCreateKey 0103h "RegDeleteKey" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. registry key name DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. HKEY (see #02644) 0104h "RegSetValue" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. HKEY (see #02644) 0105h "RegQueryValue" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. HKEY (see #02644) 0106h "RegEnumKey" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. HKEY (see #02644) 0107h "RegDeleteValue" 0108h "RegEnumValue" STACK: DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> BYTE ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. for ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ??? DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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