This document is about writing your own device drivers. If you are looking for already written device drivers, try http://www.driverguide.com/ or http://www.my-driver.com/ or http://www.driverpit.com/ or http://www.linuxprinting.org/ .
updated 2001-10-03. Minor cleanup.
[FIXME: woefully incomplete. Is there a better FAQ on writing device drivers elsewhere ?]
(Here I have software PCI information. See vlsi.html#pci for hardware PCI information. )
Software to display Vendor ID's/Device ID's on the PCI bus
Date: Thu, 08 Feb 1996 19:20:15 GMT From: Tim Eccles Subject: Re: utility to check for the existence of PCI X-Mailing-List: <email@example.com> archive/latest/2148 To: Mailing List Recipients <firstname.lastname@example.org> In message <199602022222.OAA01057@dynip40.efn.org> Rick Bronson writes: > > Hi, > Does anyone have a utility to check for the existence of PCI and if > it exists show all Vendor ID's/Device ID's for each PCI card? > > Thanks > > Rick > Here are some simple routines - they worked OK for me. This stuff was compiled with an old Borland C++ compiler. Hope it saves someone some typing. There are three bits - the original names are PCIBIOS.H, PCIBIOS.C, and DUMPPCI.C DUMPPCI.C is the mainline ******* ... -- Regards Tim Eccles
assembly language programming links [FIXME: merge with video_game.html ?]
"Hardware designers must make changes to their designs so that Power Management can work. ... http://www.microsoft.com/hwdev/desinit/onnowwdm.htm/ "
Date: Thu, 21 Mar 1996 09:20:52 -0700 X-Sender: email@example.com Mime-Version: 1.0 To: firstname.lastname@example.org From: Ron Bass Subject: Re: ddk-l: How to Get Physical Address of a PCI adapter in VxD Sender: email@example.com Precedence: bulk Reply-To: firstname.lastname@example.org At 12:53 PM 3/20/96 CST, email@example.com (Johnson Chih) wrote: >Dear all: > I am developing a device driver of an display adapter that using >PCI bus. Since the PCI BIOS will dynamic adjust the physcial addresses >of all PCI adapter while the machine is powered on, so the physical >address of my adapter will vary in different machine. I get a problem to >find the physical address of my adapter in my VxD. Could anyone give me >some suggestion about how to find the physical address ? thanks! > > Under Win 95, the approved Microsoft way is to read i/o and physical addresses from the PCI cofiguration space using the CONFIGMG_Call_Enumerator_Function service. Martin Borve of MSFT posted the text of a new KnowledgeBase article about this (Q140730) in comp.os.ms-windows.programmer.vxd back in January. You can find the KnowledgeBase article on the web at http://www.microsoft.com/kb/developr/win32dk/q140730.htm ttfn -Ron
Andrew Schulman ftp://ftp.ora.com/pub/examples/windows/win95.update/schulman.html some Windows Device Driver info.
Subject: Re: Access I/O ports in VB, Excel, Access97, etc. From: firstname.lastname@example.org (Dale Edgar) Date: 1998/07/04 Message-ID: <email@example.com> Newsgroups: comp.robotics.misc [More Headers] [Subscribe to comp.robotics.misc] Hello "Piotr Adamski" wrote: >PortIO Hardware Interface OCX (16 & 32 bit) is available at >http://www.vbonline.com/vbonline/cie web site. >PortIO works in Win3.1, Win95 and Win98. >There is also a downloadable demo at the above site. >For more technical info (including GUI snapshots & FAQ) see also >http://www.rain.org/~pra web site. Please note this is not the free PortIO95 VxD which provides parallel port access. A rather unfortunate collision of names. PortIO95 is at: http://ds.dial.pipex.com/town/close/ec63/portio95.htm Cheers Dale Edgar ------------------------------------------------------------------ Dale Edgar firstname.lastname@example.org (remove the 1xxx1 to reply via email)
the Intelligent I/O architecture (I2O)
-- from http://www.dejanews.com/[ST_rn=md]/threadmsg_md.xp?AN=466761566.1 see http://www.ddj.com/
Accessing ports directly under NT can only be done by device drivers which are installed and run with Administrator priviledges. Normally, you would write a specific device driver which uses the parallel port to communicate with the external hardware. The application program would then use this driver instead of accessing the hardware directly. While I have no doubt that this is what you will eventually do, this will take time to develope and test. A quicker solution is to use ready-made drivers which give programs direct access to the hardware. A device driver package such as DirectNT (containing giveio.sys and totalio.sys) can help here. The program is available free from Dr. Dobb's journal (see the article on http://www.ddj.com/ , Online library for May 1996, page http://www.digitalriver.com/dr/v2/ec_MAIN.Entry10?SP=10023&PN=1&V1=133372&xid=4909 , with the file itself accessible at http://www.ddj.com/ftp/1996/1996.05/directio.zip ). Another useful package directnt.exe, which can be found at http://www.ionet.net/~rbdavis/directnt.exe (from http://www.alternativecpu.com/ , page http://www.alternativecpu.com/subpages/files/files.shtml - the driver is used here to allow configuration of Cyrix processors under WinNT).
To use these device drivers, the application must simply open them as files (named "\\.\giveio") - the application will then have full access to hardware ports and can run the parallel port in the same way as under Windows 95 or Windows 3.1. An easier (but less secure) method is to use the totalio.sys device driver. When this is activated, *all* programs have total access to the hardware. I suspect that this will allow MPLab access to the parallel port under Windows NT with no modifications whatsoever. I have used this driver before to allow Windows 3.1 programs to access the parallel port.
Both these packages come with full source code, so you can see how they work. As far as I understand it, the packages are freely available and can be used in any way you like.
Device Driver Development Tools Device Driver Fiddler (Windows 95/98, Windows NT 4.0 & Windows 2000) http://beyondlogic.org/dddtools/dddtools.htm "the Device Driver Fiddler allows you to test DeviceIOCommand() Calls before you write your User Mode Application" ... after you build a new version of your device driver, you need to stop the old version, uninstall the old version, install the new version, and start the new version. The "Windows NT Device Driver Installer" here has a single button that does all that.
This page started ... long before 2000-12-04.
David Cary feedback.html
// end http://rdrop.com/~cary/html/device_driver.html