Tech Support > Microsoft Windows > Drivers > About using undocumented ddk functions.
About using undocumented ddk functions.
Posted by sdr on December 25th, 2005


Respected Sir,

I want to use ddk's undocumented functions. Hence I would
like to know asto how and where can I find complete documentation and help
about ddk's undocumented functions ? Plz help me. I am need of these truely
very urgent to me.

Posted by Pavel A. on December 25th, 2005


"sdr" wrote:
Can you tell what are these "undocumented functions" and why you need them?

You have 5 seconds... while the respected sirs are loading their big guns <g>

Regards,
--PA


Posted by Maxim S. Shatskih on December 25th, 2005


Depends upon what particular functions. Some of them are, say, documented
in the IFS kit, and they are surely safe to be used.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com

"sdr" <sdr@discussions.microsoft.com> wrote in message
news:64E4E57B-DBB9-4485-9BD8-9DAD687FD6C2@microsoft.com...

Posted by Robert Marquardt on December 26th, 2005


sdr wrote:

If you want the docudocumentation then the functions cannot be undocumented.

Posted by Bruno van Dooren on December 26th, 2005


If there was public documentation, they wouldn't be undocumented...
needing undocumented API's is a sure sign that you're doing something you
really shouldn't, IMO.

but if you need them bad enough, you might want examine the microsoft shared
source license. that way you can read microsoft source code, thus enabling
you to find out what you need to know.
it might cost you though.

kind regards,
Bruno.



"sdr" <sdr@discussions.microsoft.com> wrote in message
news:64E4E57B-DBB9-4485-9BD8-9DAD687FD6C2@microsoft.com...


Posted by Pavel A. on December 26th, 2005


"Bruno van Dooren" wrote:
Hi Bruno,

Have you tried to follow this route yourself? Can you share any experiences?

Regards,
- Pavel



Posted by Bruno van Dooren on December 27th, 2005


Hello Pavel,

i have not followed this route myself, not that i didn't want to (i am
curious by nature) but the requirements are rather stringent:

- be a governmental organization.
- or be a OEM partner and have over 1500 windows licenses.
- or be a systems integrator and have over 1500 windows licenses.
- or be a large academic institution.
- or be a MVP.
- or microsoft has to love you very much.

and then there is a lot of other fine print that applies.
none of the above apply to me or the company i work for.

but as i said, it's the only route i know to get information about
undocumented api's.
they are that way for a reason. normally you shouldn't need them.

personally, i would like to read the sources to find out if there is any
justification at all for the braindead pnp / power IRP race conditions in
WDM.
they should have gone for WDF straight away. forcing every single driver
writer to deal with the uber-complex pnp power synchronization issues is one
of the silliest things ever in the windows world.

but that's just my opinion of course.

kind regards,
Bruno.


"Pavel A." <pavel_a@NOwritemeNO.com> wrote in message
news:24A01CEE-CADC-4E54-98BE-1BCA0431FD61@microsoft.com...


Posted by Don Burn on December 27th, 2005



"Bruno van Dooren" <bruno_nos_pam_van_dooren@hotmail.com> wrote in message
KMDF did they realize that not a single driver out there handled power or
plug-n-play correctly. The size of the state machines for pnp and power in
KMDF certainly surprised a number of Microsoft folks. It was interesting to
note that a couple years ago at WinHEC the WDF presentation on this area was
changed significantly at the last moment for a different approach, because
not everything was considered in the first model, and it was too complex.

It has over the years amazed me the number of OS people (particularily
Linux) who think hot-plug is not hard. Having worked for a fautl tolerant
company I can tell you hot-plug and changing of resources may look easy, but
quickly becomes a rat's nest. And that assumes the hardware works
correctly, much of the hardware for todays machines violates bus standards
that expect hot plugging.


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Remove StopSpam from the email to reply




Posted by Bruno van Dooren on December 27th, 2005



start with ideas that looked good at the time.


space industry. i was lead programmer on the last one. all 3 involved exotic
PCI hardware in some way. 1 involved realtime extensions with which i had to
create real-time kernel threads to act as device interfaces. i know EXACTLY
what you are talking about.
there is probably NO other os out there that sucks so much as linux.
my main gripes (bear with me. i need to get this out of my system):

- documentation. either it doesn't exist, or it is at least 2 major
releases out of date. you just look at what you can find, compare with
sources of existing drivers, and hope for the best.
- error messages. my favorite one was the one causing a boot-up
deadlock. it said :' error 1: Aaaaaaaaargh'. need i say more?
- the source is the documentation. at least, to lots of the kernel
developers. in reality, this means that if i want to know how an interface
works, i have to read gazillions of lines of codes, try to guess its
meaning, and determine if the behaviour is a bug or not.
- gdb is all the debugging you'll ever need. at least, until you decide
that your program needs threads. in that case, gdb will crash randomly if
you are debugging code that uses the STL and throws exceptions.
- a kernel debugger is no substitute for good thinking. one of Linus's
favorites this. this means there are no standard ways to hook up a debugger.
apparently, real programmers do not cause bugs.
- one of my major gripes: handles to IPC resources are not released when
there are no processes using them anymore. if one application opens a handle
to let's say a semaphore, it has no way to know - if the resource existed
already - if it existed because someone else initialized it, or if it exists
because it was left in a corrupt state because of a previous application
crash.
- power management does not exist, or only half assed. my laptop was
nearly fried one time because it seemed turned off, except that the CPU was
burning full throttle.
- did i mention there are no named semaphores or events.
- the device api can be compared with pre- WDM / PNP the driver has to
do everything.
- design is for losers. lets make up the USB api as we go along. never
mind the fact that we have to completely redesign it 3 times from the
ground up within a 1.5 year timespan.
- lots of drivers do not handle errors, PCI retries, allocation
failure,...

i could go on for quite some time still, but before i get too depressed i am
going to add a WDF coinstaller to my first WDF driver. WDF rules.

whoever says that linux is a well designed system never had to implement a
device driver that had to always work or at least die gracefully.

kind regards,
Bruno.



Posted by Don Burn on December 27th, 2005


Bruno,

I think they did think, but even then this stuff is not easy. The
Microsoft people for power and related items are some of the sharpest folks
I have ever met. On the WinHEC stuff, those of us who went to the
conference saw one set of slides in the pre-conference set, and were then
told at the beginning of the talk that there was a totally different set of
slides being presented. Note, even after this there were changes, as the
various drivers have been developed.

The overall effort for WDF has been huge with a lot of input from the
developer community. There were NDA sessions at the 2002, 2003, 2004
WinHEC, a by invitation roundtable for driver developers, plus feedback
sessions at the first DevCon. Also there was for a while an active private
newsgroup that developers used to comment on the effort. Things have not
always been smooth, but the WDF team should be applauded for the efforts.


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Remove StopSpam from the email to reply



"Bruno van Dooren" <bruno_nos_pam_van_dooren@hotmail.com> wrote in message
news:Oc7mkkyCGHA.140@TK2MSFTNGP12.phx.gbl...


Posted by Bruno van Dooren on December 27th, 2005



i totally agree with you there.from what i have seem so far, WDF will blow
away every other driver architecture.

kind reagrds,
Bruno.



Posted by Alexander Grigoriev on December 28th, 2005


AFAIK, OS X network drivers expose C++ interfaces. Compared to that, NDIS
simply sucks... KMDF is still C based, and this is XXI century...

"Bruno van Dooren" <bruno_nos_pam_van_dooren@hotmail.com> wrote in message
news:eWReO5yCGHA.216@TK2MSFTNGP15.phx.gbl...


Posted by Doron Holan [MS] on December 28th, 2005


the distinction here is that they are vtable interfaces, not concrete
classes. and now you have the fragile base problem if you ever want to
revise the interface or update it. this type of abstraction has its own set
of problems, just not the same set as a C style interface

d
--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Alexander Grigoriev" <alegr@earthlink.net> wrote in message
news:etG4Qu0CGHA.2664@TK2MSFTNGP15.phx.gbl...


Posted by Norman Diamond on December 28th, 2005


"Bruno van Dooren" <bruno_nos_pam_van_dooren@hotmail.com> wrote in message
news:Oc7mkkyCGHA.140@TK2MSFTNGP12.phx.gbl...

I can think of some. After all, the biggest differences between Linux and
Windows are:
(1) With Linux you DO get what you paid for (except if you paid for it).
(2) With Linux, if you're a programmer, you DO have a snowball's chance in
hell of fixing broken parts.

Compare it to MSDN. Either the situation matches the Subject line of our
postings, or it might be up to date or it might be more than 2 major
releases out of date. You just look at what you can find, you can't even
compare with sources (except maybe MFC), and test every API to see if it
does what MSDN says or not.

How about "Windows could not start as configured. A previous configuration
is being used." What configuration? But at least it was running. How
about "couldn't hibernate because administrator doesn't have permissions to
execute the driver". Which driver? But at least it could be rebooted.

How about dozens of blue screens caused by Microsoft's self-signed and
self-certified drivers. Yeah these are gradually decreasing in frequency,
but they're still favourites, right?

Though, you know why Linux isn't famous for blue screens? 'Cause most
panics occur while X is active, and Linux doesn't set the display back to
text mode, so users only see a hang and don't figure out it was a panic.

Yeah, as opposed to the Subject line of our postings.

You find Windbag easier? Not just equal?

Oooh, Linux is Windows 98 compatible.

Windows 95 OSR2.1, a later Windows 95 design that Intel had but I'm not sure
if it was released, Windows 98, Windows 98se, Windows 2000, Windows 2000
SPsomething, Windows XP, Windows XP SP1[a]. 8 times in 6 years.

Agreed. Every OS needs this kind of improvement, and I'm glad to see it no
matter which OS it is.


Posted by Bruno van Dooren on December 28th, 2005


that's correct. inheritance from compiled classes can lead to all kinds of
funny behavior when you are using a compiler which is different (or a
different version) from the one that the base was compiled with. found this
out the hard way.

Canon used to distributed their camera SDK as a set of compiled classes from
which you had to inherit, but they went back to a C interface because of
this.

that way, anybody could use it with VB, C#, C++, ...

kind regards,
Bruno.



"Doron Holan [MS]" <doronh@nospam.microsoft.com> wrote in message
news:uy2zBQ1CGHA.532@TK2MSFTNGP15.phx.gbl...


Posted by Alexander Grigoriev on December 28th, 2005


QueryInterface() pretty much solves the interface versioning problem.

"Doron Holan [MS]" <doronh@nospam.microsoft.com> wrote in message
news:uy2zBQ1CGHA.532@TK2MSFTNGP15.phx.gbl...


Posted by Alexander Grigoriev on December 28th, 2005



"Norman Diamond" <ndiamond@community.nospam> wrote in message
news:%23m$ycC2CGHA.2040@TK2MSFTNGP14.phx.gbl...
IIRC, Win98 had HLT in the idle loop and supported software shutdown. WinME
even supported hibernation.

During those 6 years, URB structure and IOCTL_INTERNAL_SUBMIT_URB were
always backward compatible. Not sure about OSR 2.1, never had to support it.




Posted by Pavel A. on December 29th, 2005


"Alexander Grigoriev" <alegr@earthlink.net> wrote in message news:%23tcf578CGHA.1032@TK2MSFTNGP11.phx.gbl...
Perhaps you have seen the Singularity OS (MS Research OS that has C#
kernel interface). May be this is our future

--PA



Posted by Doron Holan [MS] on December 29th, 2005


QI is one route, but that is sometimes not performant. C# or an OS based on
pcode that can be recompiled allows for an abstract interface API design
w/out the fragile base class problem b/c you can just recompile the driver
if it changes. there are issues there as well, but verifiable code would
certainly be cool

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Pavel A." <pavel_a@NOwritemeNO.com> wrote in message
news:%23Qp6ycMDGHA.208@tk2msftngp13.phx.gbl...



Similar Posts