Tom Lai's Site Index: |
My Sharewares |
Hot Links: Accelerating Windows Device Driver Development (everything you need for Windows device driver development) OSR Open Systems (a must goto site for Windows NT driver development) Windows Device Driver Internet Resources How To's: How to develop an utility that auto-installs network device drivers without having to manually install them from the Control Panel (Windows 95 and NT 4.0)? Download Microsoft's example: INPINST.EXE Within the Windows system library is the SETUPX.DLL, which contains undocumented functions for driver software installation. I have developed a nifty Windows 95 network drivers auto-installer (updater and uninstaller) based on those powerful API's. The auto-installer greatly reduced hassle of user having to go to the control panel to manually install the drivers. But the devlopment process was not easy. (I had to figure out most function usages simply from the header file provided in the DDK, SETUPX.H. The major function sets are LDD (logic disk descriptor), VCP (virtual copy procedure), IP (INF parsing), DI (device info), etc. To write an application on top of SETUPX, You must have Windows 95 DDK installed. Also, you need a thorough understanding on INF, class installer, device/driver registry locations, driver index, plus more. Finally, since SETUPX,DLL is 16-bit, you would need to build it on MSC (or 16-bit MSVC) and develop a flat thunk layer, so that it can be accessed from a 32-bit application, such as InstallShield. * For Windows NT 4.0, solving it was almost like grasping something out of air! You should first use WinDbg to step through INF files while manually installing your driver, and modify the driver INFs to mimic the sequence of actions. Finally, invoke the NT SETUP.EXE to launch your INF, and don't forget to call an undocumented API to review bindings so that the adapter driver installed is properly bound to the protocol drivers (or vice versa, protocol to adapters). How to write an IP-tunneling network adapter driver or access MSTCP protocol driver in kernel mode (Windows 95 and NT 4.0)? Download Microsoft's document: VXDTDI.ZIP I have developed an IP-tunneling network adapter driver. It is a two-edged driver that access MSTCP in kernel mode using TDI-client interface while providing standard Ethernet 802.3 interface to binding protocol drivers. It was not easy. I would suggest that one start on the Windows 95 VxD model by reading Microsoft's VXDTDI document and basing the framework on the HOOKTDI example provided in the Vireo VToolsD software. NT model of it was more difficult to develop and debug. There are many issues involved in getting the address/connection handle using ZwCreateFile(), create worker thread for functions only allowed in IRQL_PASSIVE_LEVEL, getting the device object pointer, building the IRPs and MDLs needed to marshall down to MSTCP. My e-mail address: tlai@canada.com |