[wdmaudiodev] WaveRTAudio Position Register call

  • From: "R. Geller" <foxfriend@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Sun, 14 May 2006 23:44:57 -0700 (PDT)

I am doing a software supported to run above the wave
RTport driver. It will firstly open a stream on the
driver, then it will query the RTport buffer, latency
and position register from the driver, then finally it
will put data and ask the driver to play it. 

I can get the successful return for the
KSPROPERTY_RTAUDIO_BUFFER and the
KSPROPERTY_RTAUDIO_HWLATENCY.
However I encountered problem in getting the return
for the KSPROPERTY_RTAUDIO_POSITIONREGISTER. It
returned me that error status of
STATUS_INVALID_DEVICE_REQUEST.

I use the following call to create a IRP
IoBuildDeviceIoControlRequest(IOCTL_KS_PROPERTY,
lowerDeviceObject,&KsRTAudioHwRegisterProperty,
sizeof(KsRTAudioHwRegisterProperty),&m_KsRTRegister,
sizeof(m_KsRTRegister),FALSE, &EventRTPosition,
&IoStatusBlock)

where KsRTAudioHwRegisterProperty I passed down is a
structure of KSRTAUDIO_HWREGISTER_PROPERTY following
the wave RTport document. The Property.Set is
KSPROPSETID_RtAudio, Property.Id is
KSPROPERTY_RTAUDIO_POSITIONREGISTER and
Property.Flags is KSPROPERTY_TYPE_GET. The BaseAddress
is 0;

and the EventRTPosition is initialized using
KeInitializeEvent(&EventRTPosition, NotificationEvent,
FALSE);

and the lowerDeviceObject is the functional device
object for the underlying device using MS wave RT
driver.

The IRP is created successfully, then I attache the
file object for the stream I opened as the FileObject
for the  IRP's stack.

After I do this, I use IoCallDriver to call the lower
driver with this IRP. However I get error status of
STATUS_INVALID_DEVICE_REQUEST. I use the similar
method to call the lower driver for the
KSPROPERTY_RTAUDIO_BUFFER and the
KSPROPERTY_RTAUDIO_HWLATENCY at the same place, both
give me successful return.

If I remove my software, the Position Register KS call
can work smoothly. The current driver I use is MS
inbox driver. I put a debug wave rt port driver then
and the driver did not get GetPositionRegister call.
Therefore it seems that the portclass fails my RTport
Position Register call.

Can anyone help to tell me why portclass fails my
Position Register call? Thanks!

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
******************

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.com/

Other related posts:

  • » [wdmaudiodev] WaveRTAudio Position Register call