INT 2F - MS Windows - GET DEVICE API ENTRY POINT AX = 1684h BX = virtual device (VxD) ID (see below) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point, or 0:0 if the VxD does not support an API Note: some Windows enhanced-mode virtual devices provide services that applications can access. For example, the Virtual Display Device (VDD) provides an API used in turn by WINOLDAP. SeeAlso: AX=1683h Values for VxD ID: Value Name CallOut V86 PM Description 01h VMM N N Virtual Machine Manager 02h Debug 03h VPICD Y Y Virtual Prog. Interrupt Controller (PIC) Device 04h VDMAD N N Virtual Direct Memory Access (DMA) Device 05h VTD Y Y Virtual Timer Device 06h V86MMGR N N Virtual 8086 Mode Device 07h PageSwap N N Paging Device 08h Parity N N Parity-check trapper 09h Reboot N Y Ctrl-Alt-Del handler 0Ah VDD N Y Virtual Display Device (GRABBER) 0Bh VSD N N Virtual Sound Device 0Ch VMD Y Y Y Virtual Mouse Device 0Dh VKD N Y Virtual Keyboard Device 0Eh VCD N Y Virtual COMM Device 0Fh VPD Virtual Printer Device 10h VHD Virtual Hard Disk Device (Windows 3.0) 10h BLOCKDEV N N Virtual Hard Disk Device (Windows 3.1) 10h IOS N Y (Chicago) 11h VMCPD Y Y Virtual Math CoProcessor Device 12h EBIOS N N Reserve EBIOS page (e.g., on PS/2) 13h BIOSXLAT N N Map ROM BIOS API between prot & V86 mode 14h VNETBIOS Y N N Virtual NetBIOS Device 15h DOSMGR Y N 16h WINLOAD 17h SHELL N Y 18h VMPOLL N N 19h VPROD 1Ah DOSNET N N assures network integrity across VMs 1Ah VNETWARE Y Y Novell NetWare DOSNET replacement 1Bh VFD N N Virtual Floppy Device 1Ch VDD2 Secondary display adapter 1Ch LoadHi N N Netroom LoadHi Device (RMLODHI.VXD) 1Ch LoadHi N N 386MAX LoadHi Device (386MAX.VXD) 1Ch LoadHi N N Win386 LoadHi Device (EMM386.EXE) 1Dh WINDEBUG N Y 1Dh TDDebug N Y 1Eh TSRLoad TSR instance utility 1Fh BiosHook BIOS interrupt hooker VxD 20h Int13 N N N 21h PageFile N Y Paging File device 22h SCSI 23h MCA_POS 24h SCSIFD SCSI FastDisk device 25h VPEND Pen device 26h APM Advanced Power Management 27h VXDLDR Y Y (Chicago) 2Ah VWIN32 N Y (Chicago) 2Bh VCOMM Y Y (Chicago) 30h MACH32 N Y ATI Mach32 video card 33h CONFIGMG Y Y (Chicago) 33h EDOS N N Windows DOS Box Enhancer by Mom's Software 36h VFBACKUP Y Y (Chicago) 38h VCOND Y Y (Chicago) 51h ISAPNP N N 8Dh ESDI_506 N N (Chicago) 90h voltrack N N FDh FAKEIDE N N (Chicago) 0102h CV1 N N Microsoft C/C++ 7.00+ CodeView for Windows 0200h VIPX Y Y NetWare Virtual IPX Driver 0201h VNWLSERV N N NetWare Lite 1.1 Server (SERVER.EXE) 0202h WINICE Y Y SoftICE/W 0203h VCLIENT N Y NetWare Lite 1.1+ Client 0205h VCAFT N N Novell Virtual CAFT Driver (LANalyzer for Win) 0206h VTXRX N N Novell Virtual TXRX Driver (LANalyzer for Win) 0234h VCOMMUTE Y Y PC Tools Commute 0442h VTDAPI N Y MMSys Win386 VTAPI Device 0444h VADMAD Autoinitialize DMA (Windows 3.0) 0445h VSBD Y Y WinResKit: Sound Blaster Device 0460h UNIMODEM N Y 0483h VSHARE N N Windows for Workgroups Virtual SHARE 0484h IFSMgr Y N (Chicago) installable file system manager 0486h VFAT Y Y (Chicago) 048Bh VCACHE Y Y 1021h VMB Y Y Microsoft C/C++ 7.00 WXSRVR 1022h Vpfd Y Y Microsoft C/C++ 7.00 1025h MMD Y Y Microsoft C/C++ 8.00, Visual C/C++ 1.00 21EAh VADLIBWD N Y Adlib Waveform Driver by John Ridges 2200h VFINTD Y Y Norton VFINTD (Norton Desktop) 2402h ZMAX N N Qualitas 386MAX v7 DOSMAX handler 24A0h VNSS N Y Norton Screen Saver (Norton Desktop) 24A1h VNDWD Y Y Norton VNDWD Device (Norton Desktop) 2640h VASBID N Y WinResKit: Artisoft Sounding Board Device 2860h COMMTASK N N Y Windows 386-mode preemptive tasker by James A. Kenemuth of Interabang Computing 28C0h VXD N Y Y Generic VxD for real and protected mode by Andrew Schulman in MSJ February 1993 292Dh VSBPD Y Y Sound Blaster Pro 3098h VstlthD N N N for QEMM Stealth ROM mode 310eh WPS N N MS DevNet CD-ROM: Windows Process Status 7FE0h VWFD N Y Y ??? by Neil Sandlin of Microsoft 7FE1h VWATCHD N Y Y basic driver w/ no functionality except tracing by Keith Jin of Microsoft PSS 7FE5h VFINTD N Y Y Virtual Floppy Interrupt trapper by Neil Sandlin of Microsoft 7FE7h VMPAGES N Y Y demonstration of exporting VxD services, by Neil Sandlin of Microsoft 7FE9h VIdleD N N N demonstration of Call_When_Idle function, by Bernie McIlroy of Microsoft 7FEBh VMIOD N N N Virtual Monitor I/O Traffic Device, by Neil Sandlin of Microsoft 7FEDh VMIRQD N N N Virtual Monitor IRQ Traffic Device, by Neil Sandlin of Microsoft Note: The high bit of the VxD ID is reserved for future use. The next 10 bits are the OEM # which is assigned by Microsoft. The low 5 bits are the device number. Naturally, this scheme has not been adhered to since there are now more than 32 different VxDs. Call VTD.386 entry point with: AX = 0000h get VTD version number Return: AH = major version AL = minor version AX = 0100h get current clock tick time Return: EDX:EAX = clock tick time in 840ns units since Windows was started AX = 0101h get current system time in milliseconds Return: EAX = time in milliseconds that Windows has been running AX = 0102h get current virtual machine time Return: EAX = cumulative amount of time the virtual machine has been active, in milliseconds Note: should only be called directly when TOOLHELP.DLL TimerCount() cannot be called Call VADMAD entry point with: DX = operation 0000h set VADMAD mode AX = desired mode 0001h set VADMAD channel AX = desired channel Note: after setting mode/channel, start the DMA operation with an OUT to I/O port 0Bh (channels 0-3) or D6h (channels 4-7) .