Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


VxDs and related stuff help

Recommended Posts

Since its summer vacation and I don't have too much to do, I thought on giving it a try and learn how VxDs work and maybe try my hand on making some crude tutorial-like drivers.

As far as I've managed to find out, a DDK is vital as its name suggests, but the problem is that I haven't managed to find anyone who happened by chance to upload the 98SE DDK on the "internets" .

As for licenses and forum rules, I don't know how the DDK is classified as. Is it legal for it to be uploaded/downloaded, because, like with any other 9x-related stuff, M$ retired most of the stuff, so any Win98 DDK links are dead.

Also, except for the DDK, are there any introductory documentations/tutorials on VxDs ? I'm asking this because although I know C++ syntax and how to code something, I have absolutely no practical experience with drivers. I don't know their code-"anatomy", I don't know nothing on this issue.

A summary of my knowledge on this area would be wikipedia's article on VxDs and some general knowledge of how INFs work and their syntax, so I'm practically a "tabula rasa" .

Any help on the matter is highly appreciated.


Share this post

Link to post
Share on other sites

Dead links for the 98DDK : http://freenet-homepage.de/Power-Info/Windows98_DDK.htm

Have you tried the Wayback Machine ? We'll see what we can do if you can't find anything. :whistle:

Links for tuts and sample code I had collected :

Creating A Basic VxD : http://www.addict3d.org/news/120/feeds.php

Virtual Device Driver Basics : http://win32assembly.online.fr/vxd-tut1.html

Virtual Machine Manager : http://win32assembly.online.fr/vxd-tut2.html

Virtual Device Driver Skeleton : http://win32assembly.online.fr/vxd-tut3.html

VxD Programming: Primer : http://win32assembly.online.fr/vxd-tut4.html

VxD Example: MessageBox : http://win32assembly.online.fr/vxd-tut5.html

Dynamic VxD and DeviceIoControl Interface : http://win32assembly.online.fr/vxd-tut6.html

Application Time and Shell Functions : http://win32assembly.online.fr/vxd-tut7.html

Client Register Structure : http://win32assembly.online.fr/vxd-tut8.html

Virtual 8086 Memory Manager : http://win32assembly.online.fr/vxd-tut9.html

(.vxd) LINEAR-EXECUTABLE File Header Layout : http://faydoc.tripod.com/formats/exe-LE.htm

An assembly shell for creating dynamically loadable VxDs : http://www.matcode.com/win95vxd.txt

Examining VxD Service Hooking : http://www.ddj.com/184409878

Programming VXD’s using Assembler : http://www.vijaymukhi.com/vmis/vmchap8.htm

Windows Device Driver Development : http://www.newss.co.kr/solution/soft/driver.html#VirtualM

Virus oriented VxD writing tutorial : http://vx.netlux.org/lib/vgy05.html

Windows 3.1/95 Virtual Device Drivers (VxD) : http://www.dcee.net/Files/Programm/Windows/

Hooking Disk Access : http://www.geoffchappell.com/viewer.htm?do...=25&ts=66,0

DSDskInf.VxD - Retrieve Information from an ATA disk : http://skyscraper.fortunecity.com/virtuosi...f/dsdskinf.html

DSIdeInf.VxD - Retrieve IDE controller's Information : http://skyscraper.fortunecity.com/virtuosi...f/dsideinf.html

VxD W9x en ASM (French) : http://perso.numericable.fr/~fayjpier/vxdasm/vxdasm.php

WinIo - Direct Hardware Access Under Windows 9x/NT/2000/XP : http://www.internals.com/utilities/winio.zip

Sysinternal source code : http://doc.sch130.nsc.ru/www.sysinternals..../98source.shtml

If you want to write vxds in C/C++ you'll need expensive commercial tools I think (not 100% sure though):

VToolsD for VxD Development : http://www.ddj.com/184409684;jsessionid=B5...equestid=435152

VxDWriter - Develop VxD in C/C++ : http://www.techsoftpl.com/vxd/ ($429)

Also there is a an apparently good book about programming vxds : Writing Windows VxDs and device drivers By Karen Hazzah : http://books.google.com/books?id=F868yPHsA...=gbs_navlinks_s

All the best and good luck :hello:

Share this post

Link to post
Share on other sites

And, if I may, a couple of possible fields/projects in which to express your newly acquired knowledge/experience (the following would actually be useful ;)):





and more generally:


even if you are not interested in any of the above, the threads do contain some interesting/useful links related to VXD's. :)

About the Win 98 DDK:


it appears to have been cached by the Wayback Machine:



Share this post

Link to post
Share on other sites

Oh how sweet of MS - after 1MB of download, they cut the link off. :realmad: However, I do have a 98DDK on my HDD - it's a RAR archive (45,460,335 bytes) and the readme inside says it's synced to Windows 98 build 1998.6. If it's OK with the mods, I could offer a temporary HTTP link for direct download.

Edited by Drugwash

Share this post

Link to post
Share on other sites

Examining VxD Service Hooking - Monitoring, altering, or otherwise changing parts of Windows : http://www.ddj.com/architect/184409878?pgno=7

Fast Interrupt Processing in Windows 95 -Improving Windows' real-time performance : http://www.ddj.com/architect/184410045?pgno=11

Windows 95 Journaling and Playback - Using keyboard and mouse macros anywhere and anytime : http://www.ddj.com/architect/184409843

Building VxDs in Windows 95 - An assembly shell for creating dynamically loadable VxDs : http://www.ddj.com/architect/184410047

Examining the Windows 95 Layered File System - Adding functionality to block devices : http://www.ddj.com/architect/184409681?pgno=8

Share this post

Link to post
Share on other sites

Wow! That's more than enough to get me started ! Thanks a ton everybody and especially eidenk for the bounty of links !

Share this post

Link to post
Share on other sites

Perhaps this is also of interest although it is geared at not writing a driver.

TVicPort Overview

TVicPort is a toolkit for direct port I/O from Win32 applications. TVicPort includes transparent support for Windows 95/98/Me and Windows NT/2000/XP/XP 64-bit, providing programmers with standard methods for real-time direct access to port and memory mapped I/O - without requiring you to write a custom virtual device driver for Windows 9x/Me or a kernel-mode driver for NT/2000/XP/XP 64-bit. Brand new 64-bit offers intelligent support for 64-bit solutions.


Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...