WINVXD(3)                libwin Reference               WINVXD(3)


NAME
       winvxd - libwin's virtual device driver (VxD) functions

SYNOPSIS
       #include <libwin.h>

       int win_vxd_load (char Device[]);
       int win_vxd_unload (char Device[]);

       int win_vxd_getentry (int *Entry, int ID);
       int win_vxd_getentrybyid (int *Entry, int ID);
       int win_vxd_getentrybyname (int *Entry, char *name);

       int  win_vxd_call (int *Entry, union REGS *r, struct SREGS
       *sr);

DESCRIPTION
       These functions are low-level  functions  that  deal  with
       Windows'  virtual  device  drivers.  These  are capable of
       crashing the DOS box (virtual machine) that the program is
       executing in, and should be used with care. It is possible
       to crash Windows too.

       These are dangerous functions  and  should  be  used  with
       care.

       win_vxd_load()  and  win_vxd_unload()  load and unload the
       VxD whose filename is specified in Device[].

       win_vxd_getentry() and win_vxd_getentrybyid() are the same
       function.  They place the entry point of the specified VxD
       into Entry.  Most VxDs have a unique ID, and can be loaded
       this  way.  If  they do not, then win_vxd_getentrybyname()
       can be used to find the entry point, given the VxD's file-
       name in name.

       Once  the  entry point for a VxD has been found, it can be
       called using win_vxd_call().  This allows the contents  of
       the  normal registers EAX, EBX, ECX, EDX, EDI and ESI (all
       32-bit) to be specified in r and  the  stack  register  ES
       (16-bit)  to be specified in sr.  Care is needed with this
       call, as one needs to know what the VxD requires to be  in
       the registers. Even then this call will not be suitable in
       many cases, such as calling the VxD VWIN32, which is  part
       of Windows '95.

       A  useful  reference  about what parameters a VxD needs is
       Ralph Brown's Interrupt List. It  doesn't  go  into  quite
       enough detail, unfortunately. This can be obtained in HTML
       form (the best, IMHO) from  http://www.ctyme.com/.   Other
       than  that,  the  Microsoft Developer's Network on the Web
       has lots of information and is free to join - see:

              http://www.microsoft.com/msdn/                   or



libwin 0.1.5            22 September 2002                       1





WINVXD(3)                libwin Reference               WINVXD(3)


              http://www.eu.microsoft.com/msdn/

RETURN VALUES
       All  of  these  functions except win_vxd_call return -1 on
       failure,  and  0  or  greater  on  success.   win_vxd_call
       returns the contents of the AX register from the VxD call.

SEE ALSO
       libwin(7)

BUGS
       These functions do not work on Windows NT, 2000 or XP.













































libwin 0.1.5            22 September 2002                       2



Page created on Sun Sep 29 21:12:26 2002 by m2h.pl, a man page to HTML convertor.
m2h.pl Version 1.3.2, Copyright 1997-2002 by Richard Dawe <webmaster@phekda.org>