Hi Yong, I haven't done very much with this, but hopefully this will help. You can obtain a device interface for the wave or topology miniport by calling waveInMessage, waveOutMessage or mixerMessage with the parameters DRV_QUERYDEVICEINTERFACE and DRV_QUERYDEVICEINTERFACESIZE, which are documented in the WDK. Using that device interface, you can then call DeviceIoControl with IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT/IOCTL_KS_DISABLE_EVENT, and IOCTL_KS_METHOD. If your client software is using DirectSound, device property sets can be accessed by calling QueryInterface with IID_IKsPropertySet on a DirectSound buffer object. This is documented in the DirectX documentation. If you're using the Core Audio API on Windows Vista, Mitch Rundle described a method for activating an IKsControl interface on an audio endpoint on this list on the 9th January 2007. Jeff ----- Original Message ----- From: Yong Liu To: wdmaudiodev Sent: Tuesday, February 13, 2007 1:21 AM Subject: [wdmaudiodev] wdmaudiodev] Re: avstream audio driver and portcls audio driver? Thank you very much for your information. Another question is that in AVstream, clients (user mode) can call IKsControl::ksmethod(ksevent, ksproperty) to communicate (read or write data) with the kernel mode driver, can portcls do that and how? This may be a silly question, but you answer will save me much time. Thank you. Yong