[wdmaudiodev] Re: USBAudio.sys tunneling question

  • From: "DJ Sisolak" <dsisolak@xxxxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 16 Sep 2003 15:28:13 -0700

Hello Andrew,

Sorry for the delay getting back to you. If you look at the DirectKS
sample there is code there which shows you how to get the handle to the
device KS filter based on categories.

As to how to address the device directly and send IOCTLs, that is not
available in WinXP. Way back in Win98 (and I believe in Win2K) this was
possible by sending a KS Property KSPROPERTY_AUDIO_DEV_SPECIFIC, but
that was dropped around the Millennium timeframe. GET_MEM and SET_MEM
will be available in Longhorn. I was planning to revive the device
specific request, but have not been able to determine how best to do so.
What parameters would suit a generic passthrough of a command for all
cases? And if this passthrough is developed, will it be abused in that
developers will only support the passthrough and forsake the class spec?


Thanks,
DJ Sisolak

This posting is provided "AS IS" with no warranties, and confers no
rights.

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Andrew Sherbrooke
Sent: Tuesday, September 16, 2003 1:28 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] USBAudio.sys tunneling question

Hi all,

I'm working with a USB audio class-compliant device. It's working great,
under XP, with usbaudio.sys. We would also like to be able to send
proprietary information to it from a user-mode application, however, to
control some (DSP-related) functionality. We'd like to use use the
control
endpoint for this purpose (in lieu of setting up an additional interface
and loading a separate kernel driver against it), but are uncertain
whether or not it's possible to to "tunnel" the data through
usbaudio.sys. 

We know that, armed with a device name, we should be able to obtain a
handle to the device by using CreateFile with the argument
"\\.\MyDeviceName". Our hope was that we could then send IOTCLs to the
device with DeviceIoCtl. We have two major questions which we can't seem
to answer, however:

-- What is the device name, and how do we find it reliably? Is this
created by USBAudio.sys? What algorithm is used to derive this name
(with
the assumption that the user might have multiple audio devices, maybe
even
on the USB). I've experimented with SoftICE, but can't seem to find a
valid name. Incidentally, is the long string we see in KSStudio,
described
as a device name and involving VIDs, PIDs, and GUIDs, relevant?
-- Assuming we can get a handle to the device, is there an IOCTL we can
use to send data to the control endpoint, and where would we find its
definition? DJ Sisolak alluded to support for SET_MEM and GET_MEM, but
implied that these aren't yet supported by usbaudio.sys. Any other
suggestions?

Thanks so much for you help!

Sincerely,

Andrew Sherbrooke

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

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: