Rafael E. Pena, Ph.D.
3200 South Gessner
Houston, Texas 77063
rpenaphd@SoftwareStructures.com
www.SoftwareStructures.com
June 2002
Concerning my Device Driver work:
I have been writing
interrupt handlers and device drivers since 1993. I have written device drivers for Windows 2000 and Windows NT,
VXD's for Windows 3.1 and TSR's for MS-DOS.
This code was written in C, C++ and 80x86 Assembly.
This Device Driver
work has addressed the following problems:
·
A Windows
2000 Layered Device Driver to Manage Serial Port Interrupts driven by an
attached CAN (Cots Controller Area Network) Bus.
The kernel-mode driver
manages exclusive read and write ownership of CAN Nodes by multiple user-mode
WIN32 threads.
Tools: Numega's SoftIce Driver Studio for Windows 2000.
·
Development of a Training Course for writers of Windows NT
Device Drivers:
WRITING WINDOWS NT 4.0
KERNEL-MODE DEVICE DRIVERS. A PRACTICAL
HANDS-ON APPROACH.
Currently 13 Chapters. Material for a
5-day or 6-day course. I wrote many
kernel-mode device drivers for the course.
Tools: Numega's SoftIce for Windows NT.
·
A NT
Kernel-Mode Virtual-Device Tracing Debugger.
The Debugger (a Kernel-Mode device
driver) buffers run-time debug-traces generated by multiple, concurrent
NT Kernel, WIN32 and Virtual DOS Machine VDM) (Windows On Windows 16 bit)
threads. The Debug-trace
information is read by a WIN32 MFC (Microsoft Foundation Classes) application
that displays the call-indented traces in a User-Mode Listbox.
·
A C++ Class
Library for development of Windows NT 4.0/3.51 Kernel-Mode Device Drivers.
·
Two Windows
3.1 VXD's (Virtual Device Drivers)
Supporting a generic library
that enables Visual Basic (or Windows) user-interfaces for DOS programs running
in a Windows 3.1 Virtual-86 DOS Machine under 386 Enhanced Mode. Messages are posted across
Virtual Machine boundaries. Access
to VMM (Virtual Machine Manager) Services is available from either the V86
DOS-BOX or the Windows System machine.
·
A Real-Time
TSR Monitoring System that Displays and Reports all 8086 Interrupt-Vector
Activity in a DOS Machine.
A single interrupt handler
installs itself on all PC interrupt vectors. Able to trace into-and-from all
hardware and software interrupt handlers, irrespective of whether interrupt
parameters are passed in registers or on the stack. For PC Text Mode, a Int 10h
handler was written which on-the-fly repositions screen output in order to
preserve the monitoring-system's real-time tracing windows. System control and displays may be obtained
under DOS or under Windows 3.1, across DPMI (Dos Protected Mode Interface)
Virtual Machines.
In
other low level work I have written: C drivers to control a stepper motor through
an IBM-PC/AT's parallel port adapter; FORTRAN and C handlers for a direct
parallel port link between a DEC LSI-11 and an IBM-PC/AT; and Motorola 6808
Microprocessor Interfacing training from a Zenith/Heath-Kit training
course.
I am an excellent debugger.
My best debugging tool is, I am still sorry to say, Guessing!
Sincerely,
Rafael E. Pena,
Ph.D.
Tel: (713) 781-6633