[wdmaudiodev] Re: What is different from w2k to XP in the WaveOut/In API?

  • From: Uwe Kirst <u.kirst@xxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 04 Aug 2003 02:54:57 +0200

Hello Jeff,
I think now I doe not receive a WAVEOUTCAPS2 structure. I checked the information about the extension to WAVEOUT/INCAPS and changed the pid and the version number according to the docu. If still would receive a WAVEOUT/INCAPS2 structure, it does not matter, because I do not copy more data than sizeof(WAVEOUTCAPSW) or sizeof(WAVEINCAPSW). In fact I would copy less bytes than expected. That should be save.

I still get much more WODM_GETDEVCAPS messages than I expect. The value of param2 (size of WAVEOUTCAPS) decrements with every iteration.
example (decimal):
1315572
1122556
1121684
1120899
1120036
1119316
param2 seems to be more or less a random number, it remains unchanged for all wavein/waveout devices, but changes afterwards with ever recursion. I have no explanation for the recursion itself. A bufferoverflow?  But which function call caused it? Is there any kind of limitation (stack size, code size, heap size, usable libraries?) for this dll?
Uwe

Uwe Kirst schrieb:

Hi Jeff,
doe you mean WAVEOUTCAPSW / WAVEINCAPSW? I think the length should be 84 / 80 Bytes, at least this is what I know from w2k. That corresponses with use of wide-characters. Does XP use 8-Bit characters or is there another extension I don't know?
Uwe

Jeff Claar schrieb:

Hi Uwe, Could you be receiving a WAVEOUTCAPS2 or WAVEINCAPS2 structure? You don't say what the length of the buffer is, but it sounds like that might be it, especially since this only happens on XP, which is the only OS that supports those structures. Jeff
----- Original Message -----
From: Uwe Kirst
To: wdmaudiodev@xxxxxxxxxxxxxSent: Friday, August 01, 2003 5:29 PMSubject: [wdmaudiodev] What is different from w2k to XP in the WaveOut/In API?
 Hi,
because there are so many known kmixer bugs and limitation I started to
write a wrapper dll that bypasses the the kmixer. It implements the good
old mme Wave API and is based on the direct KS sample. My dll has the
following advantages:
-no additional latency introduced, because audio data is not copied.
-no format and sample rate conversations, audio data provided as it is.
-no 10/32 device limit.
-full 32 and 24 bit support (32/24 bit support has been removed in XP
(e.g.:samplitude plays 32 bit data in w2x, does not play in 32 bit in
XP))

The dll works quite well in w2k, but I'm still having some trouble with
XP. That's why I'm asking for help. I'm having some strange effects
while debugging the dll under XP:
I see a lot of WODM_GETNUMDEVS, WIDM_GETNUMDEVS, WODM_GETDEVCAPS,
WIDM_GETDEVCAPS messages, more than I expect from the number of devices
I support. It seems that the system calls these messages in an more or
less endless loop. The WOM_GETDEVCAPS and WIDM_GETDEVCAPS have two
parameters: dwparam1, dwparam2. The first parameter is a pointer to the
memory that should be filled with the devicecaps. The second parameter
is the length of the devicecaps which should be 80 or 84 depending on
the direction. From the debugprints I can see that the second parameter
most of the time is not 80 or 84 but a number >> 84. If I copy the
devicecaps in that case, the application that uses the waveapi crashes.
The windows explorer or the messenger also crashes during installation
in that case. If I do not copy the devicecaps in that case the
devicename in the application is left blank (depending on the
application I use) or shows some other error message. I see also much
more blank lines or error message than devices I have installed. The
windows control panel shoes the correct number of devices and
devicenames. To be sure that all these effects does not have anything to
do with DirectKS I skipped DirectKS device enumeration and used constant
values for the number of devices and devicecaps structures.
Does anyone have a clue?
Thanks
Uwe
 
 
 
 

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.de/
****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.de/

Other related posts: