RE: Re: Re:[SPAM] Re:Re:Driver Programming Fundamentals/Philosophy, was: Re: Calling NdisRequest() f

> What scares me is a guy from a totally non CS background whos heard driver

programming is very cool. Picks up Walter Oney learns a few APIs …

In order to write drivers one has to know C. Therefore, someone who has no computer background whatsoever just has to chance to even try writing drivers, in the first place. In it impossible to program in C without knowing about linked lists, and linked lists are described in books alongside the binary trees, hash tables, search algorithms, etc. Therefore, he is going to learn some
CS basics anyway. Furthermore, he will have to start his programming experience with user-mode programs - by the time he proceeds to drivers, he will know C plus have some user-mode Windows programming experience, which, apparently, will go like VB/Delpi -> C++(MFC) -> C (Windows API),
so that he will learn at least something about Windows architecture, IPC, synchronization, etc.

In other words, by the time he tries to write drivers, his practical knowledge will be at least at the level of CS graduate with not-so-small user-mode programming experience - otherwise, he just has no chance to understand *ANYTHING* in books/articles about the kernel-level programming…

The rest of my post applies to the above mentioned guy in exactly the same way as to CS graduate who is experienced in writing user-mode programs…

pulls up an existing driver modifies it to get another one working has practically no idea of
software engineering/ OS leave alone comp arch. And now gets into the business of
writing *kernel mode* drivers.

Nonsense!!! You will never, never, never ever write a workable driver this way - unless you know what you are doing, your “modifications” are going to turn production-grade samples into crap. Actually, it is me who started off all this discussion, and this is *EXACTLY * how I started it - I said that “reusing” the existing samples without understanding how they actually work is leads you nowhere. Check this NG or MSFT ‘drivers’ one - you will see plenty of posts like " I modified sample XYZ… It bluesceens… What am I doing wrong?" It is going to take you quite a while before you are able to present a driver that actually works, and, at this point, you will already have a solid kernel-level experience and good knowledge of the target architecture (which is still hardly going to help you with writing drivers for other architectures - even if you are FS guru, it will still take quite a while before you are able to write a production-grade NDIS IM, and vice versa)

This is why a company would prefer to hire someone who is experienced in writing drivers for
*this particular* architecture, rather than a chip designer, let alone some CS graduate/academician

Anton Bassov