[wdmaudiodev] Anybody got any information about the IRPs in an upper filter?

  • From: NCH Obble Smith <Obble@xxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 16 Oct 2009 09:11:54 +1100

Hello All,

First post here :-)
May I ask if anyone have a link / information about the IRPs that an upper filter must monitor to copy the audio stream.

I know of the existence of IO have read about IRP_MJ_DEVICE_CONTROL and IRP_MJ_WRITE / READ but I havn't found any information about the format of these IRPs. I am assuming theres a command payload in the buffer of the IRP that the audio driver would interpret and then send commands to the minidriver.

I noticed in the inputbuffer the sample rate information e.g.:

Filter - IRP_MJ_DEVICE_CONTROL
Filter - Mode:KernelMode
     UserBuffer Address = 0xEDF5C1E8
Stack Func = 14, 0 Flags(0x00000000) Parameters (OutputBufferLength =82, InputBufferLength=24, IoControlCode=002F0003 (IOCTL_KS_PROPERTY), Type3InputBuffer=0xEDF5C1C8 ----------------------------------------------------------------
20 C9 58 1D - 9B AC CF 11
02 00 00 00 - 02 00 00 00
52 00 00 00 - 00 00 00 00
61 75 64 73 - 00 00 10 00
01 00 00 00 - 00 00 10 00
81 9F 58 05 - 56 C3 CE 11
01 00 02 00 -*22 56*  00 00
00 00 00 00 - 03 00 00 00
00 00 00 00 - 00 00 00 00
A5 90 1C ED - 60 E8 5F 86
3C 18 ---------------------------------


   /from MSVAD sample /minidriver
   SET FORMAT
   PCM->wFormatTag = WAVE_FORMAT_PCM
   PCM->nChannels = 2
   PCM->nSamplesPerSec = *22050 *
   PCM->nAvgBytesPerSec = 88200
   PCM->nBlockAlign = 4
   PCM->wBitsPerSample = 16
   PCM->cbSize = 0

------------------------------------
MSVAD:
New Format:*22050*

but I noticed when first initialized it's

60 49 13 8C - AD 51 CF 11
04 00 00 00 - 01 00 00 00
B8 00 00 00 - 02 00 00 00
00 00 00 00 - 00 00 00 00
80 00 00 AA - 00 38 9B 71
80 00 00 AA - 00 38 9B 71
BF 01 00 AA -*00 55*  59 5A
20 00 00 00 -64 00  00 00
58 00 00 00 - 00 00 00 00
61 75 64 73 - 00 00 10 00
01 00

PCM->nSamplesPerSec = 64000    ????????   0x5500 != 64000

So the does anyone know of a link to the documentation of how the IRP to the audio driver works? Or any tips on how to process the IRPs to get meaningful information? e.g. Audio format

Cheers
Obble.


Other related posts: