What's usage of "NTSYSAPI"

About a decade ago, I got a call. The caller said, “I was talking to
-----, who said you might be able to help us”. He described his problem,
a large, complex program. The problem was that they were three years late
and their grant would probably not be renewed unless they could
demonstrate success by the summer. After listening for a while, I
realized that it was a complete disaster and I’d probably be spending six
months full-time on it, so I quoted a six-month rate. He was outraged.
“We don’t have that much money left. We only have $…,…” and which
point I said “I wouldn’t bother to get out of bed to work for six months
at that rate!” He asked me what my rates were and I told him. “That’s
ridiculous. Why, we pay our student programmers $9/hour, and they’re
grateful!” to which I said, “And your project is three years late and
doesn’t work. When you pay $9/hour for a programmer, you get $9/hour
quality of work.”

Needless to say, I did not take the job.
joe

Gary,

Truly there are a bunch of idiotic managers and headhunters out
there. I recently had a call, where I was asked if drivers were written
in C or C++ versus “more advanced languages”, and I said yes. When the
discussion got around to my rates, the manager went ballistic with the
statement “there are plenty of $25/hour C programmers”!

Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

“Gary Little” wrote in message news:xxxxx@ntdev:
>
>> The problem is that driver developers are thought of as “second” class
>> developers by anyone outside of the driver community, which includes
>> most managers and project developers, who assume that kernel and driver
>> development can be done by any dumbshit walking in off of the street.
>> They also tend to assume driver development takes 0 time and resources,
>> hence providing the driver developer the shitty end of the stick as far
>> as time and resources, and then get upset when the driver causes the
>> schedule to slip.
>>
>> Gary Little
>> H (952) 223-1349
>> C (952) 454-4629
>> xxxxx@comcast.net
>>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

But Joe, its the Sun being consumed by the dragon. They see the moon in the sky all the time, they just can’t connect the eclipse with the moon, hence
they can;t do the same with slipped delivery dates, spaghetti code, and slave labour.

Gary Little
H (952) 223-1349
C (952) 454-4629
xxxxx@comcast.net

On Mar 22, 2012, at 2:01 PM, xxxxx@flounder.com wrote:

About a decade ago, I got a call. The caller said, “I was talking to
-----, who said you might be able to help us”. He described his problem,
a large, complex program. The problem was that they were three years late
and their grant would probably not be renewed unless they could
demonstrate success by the summer. After listening for a while, I
realized that it was a complete disaster and I’d probably be spending six
months full-time on it, so I quoted a six-month rate. He was outraged.
“We don’t have that much money left. We only have $…,…” and which
point I said “I wouldn’t bother to get out of bed to work for six months
at that rate!” He asked me what my rates were and I told him. “That’s
ridiculous. Why, we pay our student programmers $9/hour, and they’re
grateful!” to which I said, “And your project is three years late and
doesn’t work. When you pay $9/hour for a programmer, you get $9/hour
quality of work.”

Needless to say, I did not take the job.
joe

> Gary,
>
> Truly there are a bunch of idiotic managers and headhunters out
> there. I recently had a call, where I was asked if drivers were written
> in C or C++ versus “more advanced languages”, and I said yes. When the
> discussion got around to my rates, the manager went ballistic with the
> statement “there are plenty of $25/hour C programmers”!
>
>
> Don Burn
> Windows Filesystem and Driver Consulting
> Website: http://www.windrvr.com
> Blog: http://msmvps.com/blogs/WinDrvr
>
>
>
>
> “Gary Little” wrote in message news:xxxxx@ntdev:
>>
>>> The problem is that driver developers are thought of as “second” class
>>> developers by anyone outside of the driver community, which includes
>>> most managers and project developers, who assume that kernel and driver
>>> development can be done by any dumbshit walking in off of the street.
>>> They also tend to assume driver development takes 0 time and resources,
>>> hence providing the driver developer the shitty end of the stick as far
>>> as time and resources, and then get upset when the driver causes the
>>> schedule to slip.
>>>
>>> Gary Little
>>> H (952) 223-1349
>>> C (952) 454-4629
>>> xxxxx@comcast.net
>>>
>>
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

I agree. I have a whole section of my Systems Programming Course devoted
to the “right way” to use DLLs, and that is one of the key points: the DLL
itself has little, or preferrably no, state/ All state is carried in the
object itself. One of the reasons stateful DLLs are hard to use is that
the author usually makes some erroneous assumption about HOW they are
going to be used, and if you call them even with two different objects,
they will fail. Hence Rule 3. Using that as a starting point, it forces
the programmer to think of the better solutions, instead of using bad
patterns they developed in Computer Programming 101.
joe

> DLLs that have state are next to impossible to use in multithreaded
> systems.

Which is simply not true - if it was, the very concept of OS design as we
know it would be infeasible. In order to realize it all you have to do is
to think of a kernel as of a library that export functions. Therefore, the
only question left is how you implement things. If you directly expose
them to the rest of the world…well, sorry, but this is the problem that
results only from your faulty design/implementation

> In application space, there is the notion of “thread local” variables,
> which is an ugly hack to accomplish
> what careful programming should accomplish: per-thread state.

Actually, what you need in order to make your DLL usable in multithreaded
environment is not “per-thread state” but per-object one. The most
reasonable way to do is to make your DLL exports return/take references
that are meaningless to anyone but DLL itself, and make it use them as
means of locating library-scope objects with the internal state/structure
that is known only to DLL itself, i.e. do thing pretty much the same way
kernel does when it returns descriptors to UM apps. If you do it this way
no one, apart from DLL’s code, will have a direct access to these objects

  • they will be truly owned by your DLL, which means that, as far as
    global variables in multithreaded environment are concerned, your DLL will
    become an entire app in its own right. Simple, ugh…

Anton Bassov


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

> object itself. One of the reasons stateful DLLs are hard to use is that

…and COM has yet another approach to state in DLLs


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

Interesting. I had nearly this same conversation 20 years ago, and
pointed out that when I was supervising new programmers, more than half my
time was spent training them. This wouls have not been so bad if my
e,mployer had not expected me to be working 60 hours/week on the project I
was supposed to deliver. The important thing here is that if you don’t
supervise these people, you wil get a total disaster as output, and
management didn’t see that my time spent in training did anything for the
“bottom line” (I could tell a multitude of stories about the incompetence
of management, but to give you an idea, we lost 15 senior people in 18
months, all of whom quit because, as it turned out, we were the abusive
co-dependents of the company president. It took years before one of the
people was able to make this assessment, but I certainly felt better
because the only way to deal with being an abusive co-dependent is to get
out of the relationship).

Moving back on-topic, the simplest answer to the OP is “You don’t use it
unless you are writing a system API”. People writing their own apps need
to create their own macro with a project-specific name.
joe

On 22-Mar-2012 03:54, xxxxx@flounder.com wrote:

> Their comprehension is that limited. They can understand Rule 3. Not
> the
> rationale behind it, but they can follow it.
>
> Sometimes you just have to dumb it all down.

http://blogs.tedneward.com/2012/03/21/Unlearn+Young+Programmer.aspx

The old folks are no good, the young folks are no good. Anyone’s left?
– pa


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

“Gary Little” wrote in message news:xxxxx@ntdev…
> Actually, being a po’lil ol’ southern Baptist fella, I’ve never heard that
> one. It wouldn’t have anything to do with shithouse lawyers would it?

Nothing about lawyers, only about the hard working, low level developers :slight_smile:
– pa

> Gary Little
> H (952) 223-1349
> C (952) 454-4629
> xxxxx@comcast.net
>
>
> On Mar 22, 2012, at 10:47 AM, Pavel A wrote:
>
>> On 22-Mar-2012 17:27, Maxim S. Shatskih wrote:
>>>> What is really scary is when you take one of these far-below-average
>>>> programmers and put them to writing drivers.
>>>
>>> I agree.
>>
>> Agree to what? These programmers are usually not below average.
>> It’s because the driver development for Windows requires some medieval
>> skillz that they don’t learn in schools.
>> (remember that old Russian joke about senior and junior sh%thouse
>> cleaners?)
>>
>> – pa
>