Click here to Skip to main content
15,890,741 members
Home / Discussions / Hardware & Devices
   

Hardware & Devices

 
GeneralRe: wireless router ip address Pin
εїзεїзεїз8-Sep-09 22:18
εїзεїзεїз8-Sep-09 22:18 
QuestionWhat's a device driver. Pin
_80865-Sep-09 2:56
_80865-Sep-09 2:56 
AnswerRe: What's a device driver. Pin
Luc Pattyn5-Sep-09 3:48
sitebuilderLuc Pattyn5-Sep-09 3:48 
GeneralRe: What's a device driver. Pin
_80865-Sep-09 19:43
_80865-Sep-09 19:43 
GeneralRe: What's a device driver. Pin
Luc Pattyn6-Sep-09 0:43
sitebuilderLuc Pattyn6-Sep-09 0:43 
GeneralRe: What's a device driver. Pin
thecreditcardguy8-Sep-09 23:16
thecreditcardguy8-Sep-09 23:16 
AnswerRe: What's a device driver. [modified] Pin
mustang867-Sep-09 20:54
mustang867-Sep-09 20:54 
AnswerRe: What's a device driver. Pin
Roger Wright12-Sep-09 20:41
professionalRoger Wright12-Sep-09 20:41 
You've got some excellent answers here already, but let me add another that might help a bit.

Back in the good old days when we didn't have to deal with Windows I did a lot of programming devices; specifically, measuring devices to test military hardware. There were no standards then, not as we know them today. The operating system was customized for every machine model, and already "knew" how to send bits over a serial link or HPIB bus. But the languages used had constructs like READ_VOLTS(DC, 100, AVG, 10) to return the measured DC volts on a line, up to 100 Vdc, averaged over a period of 10 milliseconds.

But every oscilloscope, DMM, millivoltmeter, etc, recognized a different set of commands, unique to each manufacturer, and often each model. Usually these were in the form of text strings, and often the device listened for commands on a different physical address than the one used for data. For each device, we had to write a subprogram to translate what the operating system sent into a form the device could recognize. Today we'd call that subprogram a driver, and its job remains the same in the modern world.

If you were to design a new programmable device, a toaster perhaps, it would have built in commands that Windows knows nothing about. You might have a syntax containing something like:

ATDDSSSSHHMM#

where AT = Attention (new command setting follows)
DD = Darkness (1 - FF)
SSSS = Active slots (0001 - 1111)
HHMM = Start time (HH, hours; MM, minutes)
# = execute command

Your Toaster application program - the software your user runs to make toast - might output a command like:

Toast (Medium, 2, 5:30AM)

You would need to provide a driver to convert Medium to 80, 2 to 0011, and 5:30AM to 0530, then string them together into a command the toaster recognizes: AT8000110530#. On installation, your driver would register with Windows the addresses it listens to, and you would provide the port to which the physical toaster is connected. The driver would then ask Windows to send the commmand string it constructs using the assigned port when your program requests toast. Ideally, your driver would also notify Windows when the toast is done, so that the OS can tell your application program the status of the job.

In the Windows world, devices are not physical things, but software entities called drivers. The driver software does the actual manipulation of real objects, which adds layers of confusion for users trying to play with Device Manager. Big Grin | :-D

Writing drivers is a difficult job, and requires far more in depth knowledge of hardware than most programmers care to learn. The Windows DDK is a separate entity from the usual development tools because it is so specialized that very few developers need to use it. You could write your own driver for a mouse, but why bother? If you want to have some fun, buy a development kit for any programmable microcontroller and wire it into something useless - a beer cooler or something - then write a driver to monitor and control it. Then try to make it work reliably in a real world environment. That's where the fun begins...

"A Journey of a Thousand Rest Stops Begins with a Single Movement"

QuestionNewbie to hardware programming... Pin
thangvel27-Aug-09 8:46
thangvel27-Aug-09 8:46 
AnswerRe: Newbie to hardware programming... Pin
LloydA11128-Aug-09 11:09
LloydA11128-Aug-09 11:09 
AnswerRe: Newbie to hardware programming... Pin
Parker M cCauley10-Sep-09 5:53
Parker M cCauley10-Sep-09 5:53 
QuestionPort forwarding Pin
manish.m.meshram26-Aug-09 23:50
manish.m.meshram26-Aug-09 23:50 
AnswerRe: Port forwarding Pin
mustang8627-Aug-09 6:12
mustang8627-Aug-09 6:12 
AnswerRe: Port forwarding Pin
Michael Dunn14-Sep-09 13:42
sitebuilderMichael Dunn14-Sep-09 13:42 
QuestionSerial Port Issue Rx is working Tx is not Working. Pin
Nanda_MR26-Aug-09 20:29
Nanda_MR26-Aug-09 20:29 
AnswerRe: Serial Port Issue Rx is working Tx is not Working. Pin
Luc Pattyn27-Aug-09 8:05
sitebuilderLuc Pattyn27-Aug-09 8:05 
AnswerRe: Serial Port Issue Rx is working Tx is not Working. Pin
Parker M cCauley10-Sep-09 7:16
Parker M cCauley10-Sep-09 7:16 
QuestionHow to catch moment when other application going to use USB webcam Pin
Softvoile26-Aug-09 3:05
Softvoile26-Aug-09 3:05 
QuestionHow much RAM will mobo hold Pin
David Crow22-Aug-09 16:40
David Crow22-Aug-09 16:40 
AnswerRe: How much RAM will mobo hold [modified] Pin
mustang8622-Aug-09 21:09
mustang8622-Aug-09 21:09 
AnswerRe: How much RAM will mobo hold Pin
Sebastian Schneider24-Aug-09 3:05
Sebastian Schneider24-Aug-09 3:05 
AnswerRe: How much RAM will mobo hold Pin
Expert Coming24-Aug-09 7:59
Expert Coming24-Aug-09 7:59 
GeneralRe: How much RAM will mobo hold Pin
David Crow24-Aug-09 8:05
David Crow24-Aug-09 8:05 
AnswerRe: How much RAM will mobo hold Pin
Jörgen Andersson25-Aug-09 2:37
professionalJörgen Andersson25-Aug-09 2:37 
AnswerRe: How much RAM will mobo hold Pin
Dan Neely25-Aug-09 3:13
Dan Neely25-Aug-09 3:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.