Does anyone know a way to call ring3 APIs from VxD??
VxD is not intended to acces ring3 APIs :)
Well you should have a companion ring3 win32api applications and use some custom IOCTL code to establish a line of communication between VxD and ring3 application.
This is actually the intended mode of operation: the VxD will do the nasty hardware related work as fast as it can an using a little system resources as possible (memory and cpu time) and will relay on a companion ring3 applicatio n for an front end and doing more complicate and/or longer tasks.
However there are some counterpart functions for the ring3 api in kernel/vxd mode that can be used from ring0 mode, like functions for allocating memory, open/read/write/close files etc
Check the DDK for those functions
Well you should have a companion ring3 win32api applications and use some custom IOCTL code to establish a line of communication between VxD and ring3 application.
This is actually the intended mode of operation: the VxD will do the nasty hardware related work as fast as it can an using a little system resources as possible (memory and cpu time) and will relay on a companion ring3 applicatio n for an front end and doing more complicate and/or longer tasks.
However there are some counterpart functions for the ring3 api in kernel/vxd mode that can be used from ring0 mode, like functions for allocating memory, open/read/write/close files etc
Check the DDK for those functions
There are also functions, that can only be called at Application Time, such as _SHELL_CallDll (works only with 16-bit dlls) and _SHELL_ShellExecute, that can be used to interact with ring 3, but it's best to do all ring 3 stuff in the application or dll and ring 0 things in the VXD.
-Stealth
-Stealth