Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

WdmStub

- - - - -

  • Please log in to reply
78 replies to this topic

#26
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag

Eh? Nobody is calling you a liar. Why would you think that???

It's simply a legal formality. The published license for WdmStub specifically says it cannot be redistributed except by explicit permission of Walter Oney. That's where we stand legally, unless we can prove otherwise, eg. to the people running MSFN. Only the relevant portions of the e-mail, plus the time/date information, should suffice.

As for the source code, you can either get it on the CD-ROM if you buy the book, or you can download it as described in the first posting. Of course, the benefit in buying the book is that all the stuff is explained, otherwise you have to figure it out yourself.

Joe.

Maybe I misunderstood you or vice versa. I posted what he sent me via email. I wasn't trying to be an a** about things. Sometimes my comprehension is off.

That's great news! :yes:
What do you think about the question of whether is it preferable to have the WDM Function/Stub provider as a .SYS or as a .VxD which I've raised some posts above?

I bought the book years ago at a used Book Store. The Source code I have is version 4.20

I have written my own VXD File to add other functions, not in WDMSTUB.

From: "PROBLEMCHYLD" <>
> Do you think its possible to update WDMSTUB.SYS with the missing exports,
> and convert it to WDMSTUB.VXD.

There is no point to having a VxD -- WDMSTUB was designed for the single
purpose of allowing WDM drivers to work across platforms, and it has to be a
.sys file to perform that function. Anyhow, the source code for WDMSTUB came
with the book. That means you can use the code as a base to build something
of your own with a different name.

--
Walter Oney, Esq.
267 Pearl Hill Road
Fitchburg, MA 01420
Tel.: 978-343-3390
http://www.oneylaw.com

Edited by PROBLEMCHYLD, 22 February 2012 - 07:58 AM.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013



How to remove advertisement from MSFN

#27
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

That's great news! :yes:
What do you think about the question of whether is it preferable to have the WDM Function/Stub provider as a .SYS or as a .VxD which I've raised some posts above?

I personally prefer the VXD as it is always there just like the NT/2000/XP NTKERN.VXD that it is trying to emulate.


I bought the book years ago at a used Book Store. The Source code I have is version 4.20

I have written my own VXD File to add other functions, not in WDMSTUB.

From: "PROBLEMCHYLD" <>
> Do you think its possible to update WDMSTUB.SYS with the missing exports,
> and convert it to WDMSTUB.VXD.

There is no point to having a VxD -- WDMSTUB was designed for the single
purpose of allowing WDM drivers to work across platforms, and it has to be a
.sys file to perform that function. Anyhow, the source code for WDMSTUB came
with the book. That means you can use the code as a base to build something
of your own with a different name.

--
Walter Oney, Esq.
267 Pearl Hill Road
Fitchburg, MA 01420
Tel.: 978-343-3390
http://www.oneylaw.com

What he says would be true only if he expects WDMSTUB to be used on an NT platform to support a later version.

It appears that he is not claiming ownership of the source code, only the name WDMSTUB, so it should be OK to use it and extract the later Code.

Edited by rloew, 22 February 2012 - 11:37 AM.

Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#28
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag

What he says would be true only if he expects WDMSTUB to be used on an NT platform to support a later version.

It appears that he is not claiming ownership of the source code, only the name WDMSTUB, so it should be OK to use it and extract the later Code.

Thanks for explaining it a little better. As I said earlier, sometimes my comprehension is off. I hope I didn't offend anyone. If so please forgive me.
Thanks.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#29
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 6,132 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator

I personally prefer the VXD as it is always there just like the NT/2000/XP NTKERN.VXD that it is trying to emulate.

So we do agree on this point. BTW, v. 4.20 is still a VxD, right? It's from before he moved on to .SYS.

What he says would be true only if he expects WDMSTUB to be used on an NT platform to support a later version.

Sure, I think that's what he meant, too. And it may be needed for XP/2k sooner than anyone expects... (But I'll let this discussion for a new thread in the apropriate forum, later on).

Anyhow, the source code for WDMSTUB came with the book. That means you can use the code as a base to build something of your own with a different name.

--
Walter Oney, Esq.
267 Pearl Hill Road
Fitchburg, MA 01420
Tel.: 978-343-3390
http://www.oneylaw.com

It appears that he is not claiming ownership of the source code, only the name WDMSTUB, so it should be OK to use it and extract the later Code.

Yes, that's how I understand it. And he *is* a lawyer, besides being a programmer, so I think he meant precisely what he said. I *think* that using another name, and printing a message telling something like "based on WDMSTUB, by Walter Oney", should be all that's needed.

I hope I didn't offend anyone. If so please forgive me.

You rock, PROBLEMCHYLD! :thumbup
Your iniciative in contacting W. Oney was great, timely and enlightening. :yes:

#30
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,866 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

@ jaclaz
Do the drivers you listed work with any bluetooth or are they specific to its own devices.

I have no idea. :ph34r:
I simply gave a possible answer to dencorso's question.
I am "The Finder", AND NOT "The Low Level Device Programmer" :sneaky: .

No worries, your English is usually exemplary (if I were more proficient in Portuguese, I might have figured out what you meant).

Just for the record (and to stir a bit the pot :whistle:) *any* latin language may have done ;):
Portuguese: dispositivo
Spanish: dispositivo
Italian: dispositivo ;)
French: dispositif
Romanian: dispozitiv

:angel

Edited by jaclaz, 22 February 2012 - 05:19 PM.


#31
LoneCrusader

LoneCrusader

    Resistere pro causa resistentiam.

  • MSFN Sponsor
  • 825 posts
  • Joined 11-May 09
  • OS:98SE
  • Country: Country Flag

Donator

He also said if one was to update WDMSTUB.SYS to change the name to avoid confusion.

Of course he shall have his wish respected. I propose the updated version, if and when we arrive at that, should be named "NUWDMST".

Why not "WDMSTUBX" for "WDMSTUB eXtended/eXtender?" I think the name should be as close to the original as possible while fulfilling Oney's wishes.

Edited by LoneCrusader, 22 February 2012 - 05:22 PM.


#32
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

I personally prefer the VXD as it is always there just like the NT/2000/XP NTKERN.VXD that it is trying to emulate.

So we do agree on this point. BTW, v. 4.20 is still a VxD, right? It's from before he moved on to .SYS.

The source code is for a VXD. I don't see any for a SYS File.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#33
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag


Anyhow, the source code for WDMSTUB came with the book. That means you can use the code as a base to build something of your own with a different name.

Thanks, PROBLEMCHYLD, you've done well! This gives us the green light! :yes:

BTW, can you also give us the time/date of the e-mail? Probably not important, but it helps with traceability.

In case you haven't seen it, below is the notice that comes with the WdmStub code. So you can see why it was important to get more up-to-date permission for what we're wanting to do here :

Redistributing WDMSTUB

WDMSTUB is an exception to the blanket license to use the sample programs for this book. The author will grant a royalty-free license to anyone to redistribute WDMSTUB as part of a WDM driver package. The license will, however, include conditions designed to insure the consistency and quality of WDMSTUB on end user machines. Send e-mail to waltoney@xxxxxxxx.xxx for information about obtaining this conditional license.

Note: A special license is required even if you ship WDMSTUB under a different name. This driver includes special checking to make sure that it does not unload while some other vendor’s driver might be using it, and the special license will insure that you preserve that checking.


Joe.

Edited by jds, 23 February 2012 - 06:27 PM.


#34
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 6,132 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator


Wishlist for a next version of WDMSTUB:

_vsnwprintf
HidNotifyPresence
InterlockedPopEntrySList
InterlockedPushEntrySList
TdiCopyBufferToMdl
TdiCopyMdlToBuffer
ZwDeleteValueKey

Here's two more that might come in handy in the future.

WdfVersionUnbind
WdfVersionBind

And yet some more:

KeReadStateEvent
InterlockedExchangeAdd
KeQueryActiveProcessors
RtlUpcaseUnicodeString <-- although I reckon this one may not be feasible

#35
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag
You guys are aware his book has an Second Edition.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#36
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

You guys are aware his book has an Second Edition.

My copy is clearly the first.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#37
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag

BTW, can you also give us the time/date of the e-mail? Probably not important, but it helps with traceability.

Feb 20, 2012 06:28:41 PM

Why not "WDMSTUBX" for "WDMSTUB eXtended/eXtender?" I think the name should be as close to the original as possible while fulfilling Oney's wishes.

That would be a great name for it.

Edited by PROBLEMCHYLD, 25 February 2012 - 12:26 PM.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#38
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag
I have been wondering about the three different versions 5.00.006 of WDMSTUB.SYS (that we know of, so far), and what may be different between them. Anyway, when I opened them with Dependency Walker, it reported the following dependencies :

Oneysoft version => ntoskrnl.exe, HAL.DLL
Garmin version => ntoskrnl.exe
NUSB30e version => ntoskrnl.exe

Digging deeper with Dependency Walker revealed these dependencies :

ntoskrnl.exe => bootvid.dll, HAL.DLL, kdcom.dll
HAL.DLL => ntoskrnl.exe
bootvid.dll => ntoskrnl.exe, HAL.DLL
kdcom.dll => ntoskrnl.exe, HAL.DLL

So, all three versions ultimately show the same dependencies, but only the Oneysoft version shows a direct dependency on HAL.DLL (and is also noticeably larger than the other two, more recent, versions). I'm not sure, but that suggests to me that there may be functional differences between these three versions, despite the identical version numbering.

The other notable thing, is that these apparent dependencies are not provided by W98SE. I searched around to find these versions of said files, before Dependency Walker was fully satisfied with WDMSTUB.SYS :

bootvid.dll = 5.1.2600.0 (xpclient.010817-1148)
HAL.DLL = 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
kdcom.dll = 5.1.2600.0 (xpclient.010817-1148)
ntoskrnl.exe = 5.1.2600.2622 (xpsp_sp2_gdr.050301-1519)

Now I wonder, are these extra modules sometimes needed for WdmStub to do its job on W98, or are they only used on say, W2000?

Joe.

#39
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 6,132 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator

Dependency Walker gives false results for WDM drivers on 9x/ME. It'll always show dependencies to one of or both hal.dll and ntoskrnl.exe, which are NT-OS only files.

There are four known compilations of WDMSTUB.SYS v. 5.0.0.6, AFAIK:

1) PE TIMESTAMP Wed Jun 11 22:05:16 2003 (3EE7D1CC), 20480 KiB, MD5 69309403061DD2953D402015B6E4EFB1 is a debug build compiled from the source provided with W. Oney's Service Pack 3 to the WDM book 2nd Ed. (released June 12, 2003);
2) PE TIMESTAMP Wed Sat Mar 15 09:16:46 2003 (3E7319AE), 11520 KiB, MD5 3AA89DDB2B5FE621E0EB11F9D1FFBD39 is a release build that comes with some Honeywell drivers;
3) PE TIMESTAMP Wed Thu May 22 10:55:15 2003 (3ECCD6C3), 11520 KiB, MD5 1D7284E0F3CB98A189F0AC17C3F13337 is a release build that comes with the Garmin USB GPS drivers;
4) PE TIMESTAMP Sun Sep 24 19:05:20 2006 (45170120), 12767 KiB, MD5 9AA0AEA685F135C9D1409F8E3E5ADD10 is a release build that comes with NUSB30e.

While the first three are functionally identical, despite being clearly different compilations, with some different optimizations, the fourth is an updated version that exports one more function. It is the one in general use and it is the most up to date one that I know of, and, of course, it shouldn't be versioned 5.0.0.6...

And to answer the question you posed: yes, they're only used in NT-OSes.

#40
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag
NTOSKRNL.EXE and HAL.DLL provide the Core functionality for WDM Drivers on NT OSes. When Microsoft ported WDM to Windows 9x they put most of the Functions in NTKERN.VXD and a few in other VXDs. The normal Export/Import model cannot handle this configuration, so Microsoft provided a way to Export Functions under the name of Modules other than the ones hosting them.
These Exports are published via Kernel calls, not by PE Export tables. This is why Dependency Walker cannot follow Imports back to these Exports. In addition more than one Module can add Functions under the same Module name. WDMSTUB adds it's functions under the Module name NTOSKRNL.EXE on top of the ones already defined, replacing a few of the existing ones.
VXDs can only add Functions in this manner as they do not have Export Tables.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#41
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag
Thanks for the explanations, guys.

So it's not just with KernelEx that you can't depend on Dependency Walker ;)

OK, so we don't actually need those XP files, and it sounds like the nusb30e build of WdmStub is the default one to try. Any idea if its source exists somewhere?

Also, a crazy idea occurred to me ... if the above XP files don't have dependencies other than between themselves, could they be used together as an alternative to WdmStub (ignoring for the moment the problem that you'd probably need a license for XP to use them legitimately, which not all W98 users would have)?

Joe.

#42
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag
WmiTraceMessage

IoAssignResources

IoReportResourceForDetection

HalDispatchTable

RtlLargeIntegerDivide

IoReportDetectedDevice

HalMakeBeep

Edited by PROBLEMCHYLD, 08 May 2012 - 07:43 AM.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#43
RFMasterX

RFMasterX

    Newbie

  • Member
  • 10 posts
  • Joined 02-May 12
  • OS:98
  • Country: Country Flag

HalMakeBeep

http://four-f.webs.com/KmdTut/kmd03.html

http://www.reactos.o...ber/014542.html

http://svn.reactos.o...2&pathrev=24742

Edited by RFMasterX, 12 May 2012 - 10:10 AM.


#44
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag
Here a list of everything in this thread. I'll try to keep the list updated :thumbup

MmFreeContiguousMemorySpecifyCache
MmAllocateContiguousMemorySpecifyCache
NdisQueryBufferSafe
_aulldvrm
KeBugCheck
KeRegisterBugCheckReasonCallback
KeDeregisterBugCheckReasonCallback
InterlockedPushEntrySlist
InterlockedPopEntrySlist
NdisMRegisterUnloadHandler
NdisIMCopySendPerPacketInfo
NdisInitializeString
KeLowerIrql
KeRaiseIrqlToDpcLevel
_vsnwprintf
HidNotifyPresence
TdiCopyBufferToMdl
TdiCopyMdlToBuffer
ZwDeleteValueKey
WdfVersionUnbind
WdfVersionBind 
KeReadStateEvent
InterlockedExchangeAdd
KeQueryActiveProcessors
RtlUpcaseUnicodeString
WmiTraceMessage
WmiQueryTraceInformation
IoAssignResources 
IoReportResourceForDetection 
HalDispatchTable 
RtlLargeIntegerDivide 
IoReportDetectedDevice 
HalMakeBeep
IoSetCompletionRoutineEx
ExFreePoolWithTag
IoSetHardErrorOrVerifyDevice
ZwOpenSymbolicLinkObject

Edited by PROBLEMCHYLD, 15 May 2012 - 06:38 AM.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#45
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

Here a list of everything in this thread. I'll try to keep the list updated :thumbup

MmFreeContiguousMemorySpecifyCache
MmAllocateContiguousMemorySpecifyCache
NdisQueryBufferSafe
_aulldvrm
KeBugCheck
KeRegisterBugCheckReasonCallback
KeDeregisterBugCheckReasonCallback
InterlockedPushEntrySlist
InterlockedPopEntrySlist
NdisMRegisterUnloadHandler
NdisIMCopySendPerPacketInfo
NdisInitializeString
KeLowerIrql
KeRaiseIrqlToDpcLevel
_vsnwprintf
HidNotifyPresence
TdiCopyBufferToMdl
TdiCopyMdlToBuffer
ZwDeleteValueKey
WdfVersionUnbind
WdfVersionBind 
KeReadStateEvent
InterlockedExchangeAdd
KeQueryActiveProcessors
RtlUpcaseUnicodeString
WmiTraceMessage
WmiQueryTraceInformation
IoAssignResources 
IoReportResourceForDetection 
HalDispatchTable 
RtlLargeIntegerDivide 
IoReportDetectedDevice 
HalMakeBeep

I have five of these in my WDMEX Project already. Five more look pretty trivial to implement.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#46
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag

I have five of these in my WDMEX Project already. Five more look pretty trivial to implement.

One requires the other one. So I think if one was to implement, one would have to include all the missing functions
for a specific device. The devices I tested was printers/wireless cards/wifi cards/bluetooth.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#47
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag


I have five of these in my WDMEX Project already. Five more look pretty trivial to implement.

One requires the other one. So I think if one was to implement, one would have to include all the missing functions
for a specific device. The devices I tested was printers/wireless cards/wifi cards/bluetooth.

I created WDMEX to provide a Static VXD rather than the dynamic WDM Driver approach of WDMSTUB. I have added all of the Functions from the various versions of WDMSTUB, and all of the Functions provided by Windows ME. A few stubs have been replaced with actual implementations.
My first target for WDMEX was to support an USB3 Driver Stack. That project stopped when I found structural problems not related to missing functions.
Lately I have been working on adding USB 2 support for Windows 95, but am encountering structural issues there too.

Obviously every function needed by a given device has to be implemented or stubbed, but even my partial WDMEX did get some less demanding Drivers to work. It is a work in progress.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#48
PROBLEMCHYLD

PROBLEMCHYLD

    The Resurrector for old Windows OS

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,534 posts
  • Joined 07-October 05
  • OS:98SE
  • Country: Country Flag
Thats great news.

Believe God is the Alpha and Omega.
Believe Jesus Christ died for our sins.
Repent for your sins now or there will be
BLOOD

The Path to God


U98SESP3 03-11-2013


#49
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 6,132 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator

May I suggest the Bluetooth stack as a worthy target? :angel
There's a little more info on it here.

#50
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,129 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

May I suggest the Bluetooth stack as a worthy target? :angel
There's a little more info on it here.

I already have many of the missing NT Functions. The 3 remaining NT Functions are not too hard to implement. The missing USB and TDI Functions, I'm not so sure about.

There are some Bluetooth devices that support Windows 98. They may have useable Drivers.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users