Glad the wdk team can be of service ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
d
debt from my phone
From: Martin O’Brien
Sent: 10/24/2011 10:53 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Re:Re: C++ coding
An outstanding decision, in my opinion.
The thing is, all we’re really talking about here is a switch that basically says don’t put anything I didn’t write anywhere unexpected.
That it’s c++ is almost incidental.
As far as people just suddenly starting to write drivers in C++ now because of a LINKER switch named ‘/kernel,’ if you included the word ‘try,’ perhaps, but it’s still no more or less possible than before. If they try to do anything outside of what they could do with C++ before this WDK in a driver, they’re still not going to be able to get it to work unless they know what they are doing, same as before.
What MSFT did, in my opinion, was make it safe to use the parts that you previously could use potentially unsafely, possibly without even knowing it, with the added bonus of not forcing those aware of the potential problems into not paging anything.
In my opinion, they fixed a bug in a tool. Bug might be a little strong, but having, for example, a destructor end up in a different section depending on whether it’s virtual or not (under some conditions that are not common, nor possible at all unless you specifically mark code as pageable) is not a feature. That’s the kind of esoteric stuff that this change addressed, as I understand it.
The word for this decision, in my opinion, is sensible, and it’s easily one of the best and definitely most refreshing things the WDK team has done in years, along with the Jumbo CHM (which unfortunately is no more (and not wdk proper)), and of course the vs integration (not my thing, but I think an OVERWHELMINGLY good decision for the community as a whole).
What I think is just great is that they actually spent money to do this. Not to develop roadmaps, not to evangelize SDV one more time, not try to legislate with a blunt little tool named Certification who should be allowed to write drivers.
This had to be a tough sell internally, so, as much as anything, I see it as a really positive sign.
And for that, I say thank you, WDK Team.
You give me hope.
mm
On Oct 24, 2011 9:49 PM, “Doron Holan” > wrote:
> Now that C++ is supported, drivers WILL be written in C++; the only
question is whether they are quality drivers produced at reasonable cost,
and are maintainable, or drivers that are crap, take far too long to
write, and are totally unmaintainable
We added c++ support because the community was using regardless of our guidelines. The idea is that we formalize the guidelines into the tools, thus eliminating some poorly chosen oaths. All of the issues you bring up with cost, maintainability, etc are there regardless of our official support or not
d
debt from my phone
________________________________
From: xxxxx@flounder.commailto:xxxxx
Sent: 10/24/2011 8:19 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Re:Re: C++ coding
The original title was “DMA latency”, which wandered off-topic (I did not
start the diversion, only responded to it) so I changed the subject line
so it made more sense.
Driver construction is engineering. Since C++ is, as of WIN8, officially
supported, I think a discussion of the proper use and improper abuse of an
engineering tool becomes more relevant. In the past, C++ was a sort-of
war between The True Believers and The Heathens (and it didn’t matter
which side you were on, it was Us against Them). But I think it would be
a total disaster if every C++ wannabe programmer read “Learn C++ While You
Sleep” and started to use variadic templates to write a driver (wait…the
Microsoft compiler doesn’t support variadic templates). Therefore, flames
or not, I think it is important to educate people in the proper
engineering use of this tool. Remember that a lot of newbie driver
writers come from C++ application programming, and it is important that
they understand that writing a C++ driver is not like dashing off some C++
app. As an educator, I think the issue can no longer be ignored or simply
swept away with something like “Real Device Driver Programmers write in
C”. Now that C++ is supported, drivers WILL be written in C++; the only
question is whether they are quality drivers produced at reasonable cost,
and are maintainable, or drivers that are crap, take far too long to
write, and are totally unmaintainable.
The flame wars are over, and reality has set in. It is our responsibility
to ensure that reality is enduable.
joe
> BTW, Joe, where did you find this thread, in the first place - I cannot
> find a thread like “C++ coding” in the last 2-month. It looks like you
> worked really hard in order to find a can of worms that you can open -
> after all, anything related to C++ has historically had a reputation of
> being highly inflammatory on NTDEV, don’t you think.
> What was the exact point???
>
> 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
>
—
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
— 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</mailto:xxxxx>