INT 2F U - MS Windows - SHELL - 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 = 0017h (virtual device ID for SHELL device) (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 #02657)
		  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/BX=0021h,#01283 at INT 20"Windows"


(Table 02657)
Call SHELL entry point with:
	EDX = function number (0000h-0027h,0100h-0108h, mostly unknown)
	    0000h get version number
		Return: AX = version number
			EBX = system VMsee Virtual Machine handle
	    0001h "SHELL_Get_SYSVM_Info" get system VMsee Virtual Machine information
		Return: CF clear
			AX bit 0 set if system VMsee Virtual Machine executing exclusively
			BX = background time slice priority
			CX = foreground time slice priority
			SI = minimum time slice in milliseconds
	    0002h "SHELL_Set_SYSVM_Info" set system VMsee Virtual Machine information
		AX bit 0 set if system VMsee Virtual Machine should execute exclusively (ignored?)
		BX = background time slice priority (1-10000)
		CX = foreground time slice priority (1-10000)
		SI = minimum time slice in milliseconds (1-10000)
		Return: CF clear if successful
	    0003h "SHELL_Crt_VM" create a virtual machine
		ES:EDI -> SEB structure (see #02658)
		Return: CF clear if successful
			   EAX = VMsee Virtual Machine handle
			CF set on error
			   EDX,EAX = result from GetSetDetailedVMError()
	    0004h "SHELL_Destroy_VM" destroy a virtual machine
		EBX = VMsee Virtual Machine handle (not system VMsee Virtual Machine)
		Return: nothing
	    0005h "SHELL_Set_Focus"
		EBX = VMsee Virtual Machine handle
		ECX = ???
		Return: nothing
	    0006h "SHELL_Get_VM_State"
		EBX = VMsee Virtual Machine handle (not system VMsee Virtual Machine)
		ES:EDI -> ??? structure
		Return: CF clear if successful
	    0007h "SHELL_Set_VM_State"
		EBX = VMsee Virtual Machine handle (not system VMsee Virtual Machine)
		ES:EDI -> ??? structure
	    0008h "SHELL_Debug_Out"
		???
		Return: ???
		Note:	dummy function in retail version of MS Windows
	    0009h "SHELL_VMDA_Init"
		???
		Return: ???
	    000Ah "SHELL_VMDA_Exit"
		???
		Return: ???
	    000Bh "SHELL_Get_Message_Txt"
		???
		Return: ???
	    000Ch "SHELL_Event_Complete"
		???
		Return: ???
	    000Dh "SHELL_Get_Contention_Info"
		???
		Return: ???
	    000Eh "SHELL_Get_Clip_Info"
		???
		Return: ???
	    000Fh "SHELL_Set_Paste"
		???
		Return: ???
	    0010h "SHELL_Switcher_Assist"
		???
		Return: ???
	    0011h "SHELL_Get_FileSysChng"
		???
		Return: ???
	    0012h "SHELL_Query_Destroy"
		???
		Return: ???
	    0013h "SHELL_SetFocus_Cur_VM" set input focus to current VMsee Virtual Machine
		???
		Return: ???
	    0014h "SHELL_User_Busy_API"
		???
		Return: ???
	    0015h "SHELL_Chng_Hot_Key"
		???
		Return: ???
	    0016h "SHELL_Get_TermInfo"
		???
		Return: ???
	    ---Windows95---
	    0017h ???
	    0018h ???
	    0019h ???
	    001Ah ???
	    001Bh ???
	    001Ch ???
	    001Dh ???
	    001Eh ???
	    001Fh ???
	    0020h ???
	    0021h ???
	    0022h ???
	    0023h ???
	    0024h ???
	    0025h ???
	    0026h ???
		Note:	makes VxDCALL 00178002h (see INT 20"Windows")
	    0027h ???
	    0100h get ??? version
		Return: AX = version??? (0400h for Windows95)
	    0101h not implemented
		Return: CF set
			EAX = FFFFFFFFh
	    0102h not implemented
		Return: CF set
			EAX = FFFFFFFFh
	    0103h not implemented
		Return: CF set
			EAX = FFFFFFFFh
	    0104h ???
	    0105h ???
	    0106h ???
		???
		Return: CF clear if successful
			CF set on error
	    0107h get SDK version for 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.
		AX = 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. identifier
		Return: EAX = 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. ID (high word) and SDK version (low)
			    00000000h if no such 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. loaded
		Note:	makes a VMMCALL 0001013Fh (see INT 20"Windows")
			  followed by ???
	    0108h ???
Return: CF set if called from VMsee Virtual Machine other than system VMsee Virtual Machine
	    EAX = FFFFFFFFh
Note:	except for functions 0013h,0026h,and 010xh, this 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. may only be
	  called from the system VMsee Virtual Machine
SeeAlso: #01283 at INT 20"Windows"


Format of Shell Execution Block (SEB):
Offset	Size	Description	(Table 02658)
 00h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	PIF flags (see #02659)
 04h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	display flags (see #02660)
 08h	PWORDSix bytes.  Used to hold an 80386 protected-mode "far" address, consisting of a segment selector and a 32-bit offset, or a Turbo Pascal "real" variable.  See also DWORD, QWORD.	-> pathname of .EXE to run
 0Eh	PWORDSix bytes.  Used to hold an 80386 protected-mode "far" address, consisting of a segment selector and a 32-bit offset, or a Turbo Pascal "real" variable.  See also DWORD, QWORD.	-> argument list
 14h	PWORDSix bytes.  Used to hold an 80386 protected-mode "far" address, consisting of a segment selector and a 32-bit offset, or a Turbo Pascal "real" variable.  See also DWORD, QWORD.	-> working drive/directory
 1Ah	WORD	desired number of V86see Virtual-86 Mode pages for virtual machine
 1Ch	WORD	minimum number of V86see Virtual-86 Mode pages for VMsee Virtual Machine
 1Eh	WORD	foreground priority
 20h	WORD	background priority
 22h	WORD	maximum KB of EMSsee Expanded Memory Specification
 24h	WORD	minimum KB of EMSsee Expanded Memory Specification
 26h	WORD	maximum KB of XMSsee Extended Memory Specification
 28h	WORD	minimum KB of XMSsee Extended Memory Specification
 2Ah	WORD	maximum KB of DPMIsee DOS Protected-Mode Interface???
 2Ch	WORD	minimum KB of DPMIsee DOS Protected-Mode Interface???
 2Eh 128 BYTEs	title
Note:	the PWORDs at offsets 08h,0Eh, and 14h consist of a DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address. offset
	  followed by a WORD selector


Bitfields for 386 Enhanced Mode PIF flags:
Bit(s)	Description	(Table 02659)
 0	exclusive use of processor when VMsee Virtual Machine is fullscreen
 1	VMsee Virtual Machine runs in background
 2	VMsee Virtual Machine runs in window
 3-4	???
 5	Alt-Tab reserved
 6	Alt-Esc reserved
 7	Alt-Space reserved
 8	Alt-Enter reserved
 9	Alt-PrtSc reserved
 10	PrtSc reserved
 11	Ctrl-Esc reserved
 12	VMsee Virtual Machine will release idle time slice
 13	VMsee Virtual Machine not allowed to use high memory
 14	???
 15	VMsee Virtual Machine expanded memory not pageable
 16	VMsee Virtual Machine extended memory not pageable
 17	Fast paste from clipboard enabled
 18	VMsee Virtual Machine application memory not pageable
 30	Close VMsee Virtual Machine when application exits
SeeAlso: #02658,#02660


Bitfields for SHELL display options:
Bit(s)	Description	(Table 02660)
 0	emulate text mode
 1	monitor text port
 2	monitor low graphics port
 3	monitor high graphics port
 7	Retain video memory
SeeAlso: #02658,#02659