I am trying to get some data from USB audio to massage and put it back to original format. So I made an upperfilter driver for USBAudio.sys. I am able to see IOCTL_KS_PROPERTY and IOCTL_KS_WRITE_STREAM but IOCTL_KS_READ_STREAM. How can I see IOCTL_KS_READ_STREAM, which is required to modify some of it’s data? or How can I see the actual data from USBaudio.sys?
xxxxx@hotmail.com wrote:
I am trying to get some data from USB audio to massage and put it back to original format. So I made an upperfilter driver for USBAudio.sys. I am able to see IOCTL_KS_PROPERTY and IOCTL_KS_WRITE_STREAM but IOCTL_KS_READ_STREAM. How can I see IOCTL_KS_READ_STREAM, which is required to modify some of it’s data? or How can I see the actual data from USBaudio.sys?
An instance of usbaudio.sys only handles data in one direction. If this
is a speaker, you should only see IOCTL_KS_WRITE_STREAM. If it is a
microphone, you should only see IOCTL_KS_READ_STREAM.
If you need to modify the data going to a speaker, then you intercept
IOCTL_KS_WRITE_STREAM, change the data, and pass it on to usbaudio.sys.
How are you going to know what format the data is?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Thank you Tim again.
Hmm I connected a cheap USB audio device(iMic Audio) which is recognized as a composite deivce and put a simple upper filter driver. The IOCTOL that I need is IOCTL_KS_READ_STREAM.
An instance of usbaudio.sys only handles data in one direction. If this
is a speaker, you should only see IOCTL_KS_WRITE_STREAM. If it is a
microphone, you should only see IOCTL_KS_READ_STREAM.
Is this mean that I am using two instances of USBaudio.sys in the system? also means that I need to install my driver in a different registry key?
How are you going to know what format the data is?
What does it mean? is it mean the format of a wave format? I will restrict this with IOCTL_KS_PROPERTY to 48K/Stereo to limit the performance.
Thank you Tim,
Have a good Thanksgiving
On Thu, Nov 23, 2006 at 11:09:46AM -0500, xxxxx@hotmail.com wrote:
>An instance of usbaudio.sys only handles data in one direction. If this
>is a speaker, you should only see IOCTL_KS_WRITE_STREAM. If it is a
>microphone, you should only see IOCTL_KS_READ_STREAM.Is this mean that I am using two instances of USBaudio.sys in the
system?
If you have USB audio input and USB audio output, then yes, there will be
two instances of usbaudio.sys in your sysem.
also means that I need to install my driver in a different
registry key?
Yes, your audio input and audio output devices are two separate driver
stacks.
> How are you going to know what format the data is?
What does it mean? is it mean the format of a wave format? I will restrict
this with IOCTL_KS_PROPERTY to 48K/Stereo to limit the performance.
You can't guarantee that your devices will handle 48k stereo.
Tim Roberts, xxxxx@probo.com
Providenza & Boeklheide, Inc.
Thank you Tim.
I tried to verify whether I have two USB audio composite registries in my computer when I added an USB audio device. This device can play out and record in.
Below is my registry keys when I added my device. I was expecting to see 2 usbaudio.sys’ in this location, but couldn’t find it, where the active service is “usbaudio”. Is it right location? or somewhere else to put the upper filter?
< Registgry Key >
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af\5&14787816&0&1]
“DeviceDesc”=“USB Composite Device”
“LocationInformation”=“iMic USB audio system”
“Capabilities”=dword:00000084
“UINumber”=dword:00000000
“HardwareID”=hex(7):55,00,53,00,42,00,5c,00,56,00,69,00,64,00,5f,00,30,00,37,<br> 00,37,00,64,00,26,00,50,00,69,00,64,00,5f,00,30,00,37,00,61,00,66,00,26,00,<br> 52,00,65,00,76,00,5f,00,30,00,30,00,30,00,35,00,00,00,55,00,53,00,42,00,5c,<br> 00,56,00,69,00,64,00,5f,00,30,00,37,00,37,00,64,00,26,00,50,00,69,00,64,00,<br> 5f,00,30,00,37,00,61,00,66,00,00,00,00,00
“CompatibleIDs”=hex(7):55,00,53,00,42,00,5c,00,44,00,65,00,76,00,43,00,6c,00,<br> 61,00,73,00,73,00,5f,00,30,00,30,00,26,00,53,00,75,00,62,00,43,00,6c,00,61,<br> 00,73,00,73,00,5f,00,30,00,30,00,26,00,50,00,72,00,6f,00,74,00,5f,00,30,00,<br> 30,00,00,00,55,00,53,00,42,00,5c,00,44,00,65,00,76,00,43,00,6c,00,61,00,73,<br> 00,73,00,5f,00,30,00,30,00,26,00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,<br> 73,00,5f,00,30,00,30,00,00,00,55,00,53,00,42,00,5c,00,44,00,65,00,76,00,43,<br> 00,6c,00,61,00,73,00,73,00,5f,00,30,00,30,00,00,00,55,00,53,00,42,00,5c,00,<br> 43,00,4f,00,4d,00,50,00,4f,00,53,00,49,00,54,00,45,00,00,00,00,00
“ClassGUID”=“{36FC9E60-C465-11CF-8056-444553540000}”
“Class”=“USB”
“Driver”=“{36FC9E60-C465-11CF-8056-444553540000}\0017”
“Mfg”=“(Standard USB Host Controller)”
“Service”=“usbccgp”
“ConfigFlags”=dword:00000000
“ParentIdPrefix”=“6&ea0a9e0&1”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af\5&14787816&0&1\Device Parameters]
“ExtPropDescSemaphore”=dword:00000001
“SymbolicName”=“\??\USB#Vid_077d&Pid_07af#5&14787816&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af\5&14787816&0&1\LogConf]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af\5&14787816&0&1\Control]
“ActiveService”=“usbccgp”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af&MI_00]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af&MI_00\6&ea0a9e0&1&0000]
“DeviceDesc”=“USB Audio Device”
“LocationInformation”=“iMic USB audio system”
“Capabilities”=dword:000000a4
“UINumber”=dword:00000000
“HardwareID”=hex(7):55,00,53,00,42,00,5c,00,56,00,69,00,64,00,5f,00,30,00,37,<br> 00,37,00,64,00,26,00,50,00,69,00,64,00,5f,00,30,00,37,00,61,00,66,00,26,00,<br> 52,00,65,00,76,00,5f,00,30,00,30,00,30,00,35,00,26,00,4d,00,49,00,5f,00,30,<br> 00,30,00,00,00,55,00,53,00,42,00,5c,00,56,00,69,00,64,00,5f,00,30,00,37,00,<br> 37,00,64,00,26,00,50,00,69,00,64,00,5f,00,30,00,37,00,61,00,66,00,26,00,4d,<br> 00,49,00,5f,00,30,00,30,00,00,00,00,00
“CompatibleIDs”=hex(7):55,00,53,00,42,00,5c,00,43,00,6c,00,61,00,73,00,73,00,<br> 5f,00,30,00,31,00,26,00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,73,00,5f,<br> 00,30,00,31,00,26,00,50,00,72,00,6f,00,74,00,5f,00,30,00,30,00,00,00,55,00,<br> 53,00,42,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,31,00,26,00,53,<br> 00,75,00,62,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,31,00,00,00,55,00,<br> 53,00,42,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,31,00,00,00,00,<br> 00
“ClassGUID”=“{4D36E96C-E325-11CE-BFC1-08002BE10318}”
“Class”=“MEDIA”
“Driver”=“{4D36E96C-E325-11CE-BFC1-08002BE10318}\0019”
“Mfg”=“(Generic USB Audio)”
“Service”=“usbaudio”
“ConfigFlags”=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af&MI_00\6&ea0a9e0&1&0000\Device Parameters]
“ExtPropDescSemaphore”=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af&MI_00\6&ea0a9e0&1&0000\LogConf]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_077d&Pid_07af&MI_00\6&ea0a9e0&1&0000\Control]
“ActiveService”=“usbaudio”
Thank you Tim,