Hi guys I have a strange problem that I don't know how to fix. A little of the story telling first... I'm updating AVStream driver that worked perfectly under XP, but it fails under Win 7 32bit (vista not tested). The driver copies buffers manually as the the card has a hardware bug and it needs a specific copy protocol for it to work... so everything is manually copied in DPC. Now the symptoms of the problem is that I don't receive any stream pointers for output buffers... I get them for inputs, but the sound still doesn't come through. After some debugging I've noticed in WindDbg that I get a strange warning: --------------------------------------------------------------------------------------------------- Launch of AudioDG.EXE as a protected process failed with STATUS_INVALID_IMAGE_HASH This usually means that there is a problem with PEAUTH, because an unexpected DLL was added to the audiodg.exe process To find the offending binary, please do the following from an *elevated window*: 1. \\showtime\public\pmp\tools\MSInternal\ConfigKeys\EnablePEAuthLogging.reg 2. Reboot the machine 3. \\showtime\public\pmp\tools\MSInternal\PEBinCheck\PEBinCheck.cmd The output file on the screen will contain the offending binary. To get the build to boot, audiodg is being restarted outside of the protected environment, audio will continue to function, but playback of protected content will be disabled For more information, please see: http://dmd/wmpg/mf/cp/PMP/Lists/Protected%20Environment%20FAQ/Flat.aspx --------------------------------------------------------------------------------------------------- Normally I get this the first time I press start on any audio player. Then DPC starts doing it's thing, but as there is no data nothing happens. Now the thing is even more drastic that if you press stop or even close the application, the stop command wont be send to the driver, so the only option to stop it is to restart the machine. I've rechecked if the Audiodg.exe files are corrupted on the machine... compared to notebook running also running Win 7 32bit and the files are identical... same size and same date of creation. I've also checked event logs and there was a strange event for WMP that it could not load DRM stuff, because debugger is running... is this related to AudioDG.exe? Has somebody already come around something like this or is there something I can set (a flag or something) that would give me some more detail of what is happening? So that I can fix it... Any help would be REALLY appreciated. Waldemar Haszlakiewicz Below are framing and pin definitions.... KSALLOCATOR_FRAMING_EX driver_c::m_AllocatorFraming_Wave_Stereo = { 1, 0, { 1, 1, 0 }, 0, { { STATICGUIDOF( KSMEMORY_TYPE_KERNEL_NONPAGED ), //MemoryType STATIC_KS_TYPE_DONT_CARE, //BusType KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE, //MemoryFlags 0, //BusFlags KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY, //Flags 1, //Frames FILE_QUAD_ALIGNMENT, //FileAlignment 0, //MemoryTypeWeight { //PhysicalRange 0, //min: 2*glClass.bufferSize <- it's set at SetBufferSize 0, //max: 2*glClass.bufferSize <- it's set at SetBufferSize 0 //step: 0 }, { //FramingRange { //Defines optimal range of frame sizes. //Notice: //You will have to reset this every time the driver //buffer will change. 0, //MinFrameSize: 2*glClass.bufferSize <- it's set at SetBufferSize 0, //MaxFrameSize: 2*glClass.bufferSize <- it's set at SetBufferSize 0 //Stepping: 0 }, 0, 0 } } } }; And next pin description: KSPIN_DESCRIPTOR_EX KsPinDescriptors_4xx_Wave_Stereo[] = { //WaveIn 1,2 //Sink Pin { &PinDispatch_Wave, NULL, { SIZEOF_ARRAY( PinInterfaces_Wave ), (KSPIN_INTERFACE*) &PinInterfaces_Wave, SIZEOF_ARRAY( PinMediums_Wave ), (KSPIN_MEDIUM*) &PinMediums_Wave, SIZEOF_ARRAY( PinAudioFormatRanges_4xx_WaveSink_Stereo ), PinAudioFormatRanges_4xx_WaveSink_Stereo, KSPIN_DATAFLOW_OUT, KSPIN_COMMUNICATION_BOTH, &pinCategory, &pinName_Wave_line_in, 0 }, KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING | //Directly poll the queue at DPC time( transport data to hardware ). KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING | //Pin is responsible to check for available frames. KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING | KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY | //Change status one step at a time. KSPIN_FLAG_USE_STANDARD_TRANSPORT, 1, //InstancesPossible 0, //InstancesNecessary &driver_c::m_AllocatorFraming_Wave_Stereo, (PFNKSINTERSECTHANDLEREX)&driver_c::Pin_AudioIntersectHandler }, //Bridge PIN { NULL, NULL, { SIZEOF_ARRAY( PinInterfaces_Wave ), (KSPIN_INTERFACE*) &PinInterfaces_Wave, SIZEOF_ARRAY( PinMediums_Wave ), (KSPIN_MEDIUM*) &PinMediums_Wave, SIZEOF_ARRAY( PinAudioFormatRanges_WaveBridge ), PinAudioFormatRanges_WaveBridge, KSPIN_DATAFLOW_IN, KSPIN_COMMUNICATION_NONE, &pinCategory_bridge, &pinName_bridge_line_in, 0 }, 0, 0, 0, NULL, NULL }, //WaveOut 1,2 //Sink PIN { &PinDispatch_Wave, &AutomationTable_Wave_Stereo, { SIZEOF_ARRAY( PinInterfaces_Wave ), (KSPIN_INTERFACE*) &PinInterfaces_Wave, SIZEOF_ARRAY( PinMediums_Wave ), (KSPIN_MEDIUM*) &PinMediums_Wave, SIZEOF_ARRAY( PinAudioFormatRanges_4xx_WaveSink_Stereo ), PinAudioFormatRanges_4xx_WaveSink_Stereo, KSPIN_DATAFLOW_IN, KSPIN_COMMUNICATION_SINK, &pinCategory, &pinName_Wave_line_out, 0 }, //We need this if we want to call KsPinAttemptProcessing //synhronically( do KsPinProcessing come back to DPC ) KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING | //Directly poll the queue at DPC time( transport data to hardware ). KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING | //Pin is responsible to check for available frames. KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING | KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY | //Change status one step at a time. KSPIN_FLAG_USE_STANDARD_TRANSPORT | KSPIN_FLAG_RENDERER, 1, //InstancesPossible 0, //InstancesNecessary &driver_c::m_AllocatorFraming_Wave_Stereo, (PFNKSINTERSECTHANDLEREX)&driver_c::Pin_AudioIntersectHandler }, //Bridge PIN { NULL, NULL, { SIZEOF_ARRAY( PinInterfaces_Wave ), (KSPIN_INTERFACE*) &PinInterfaces_Wave, SIZEOF_ARRAY( PinMediums_Wave ), (KSPIN_MEDIUM*) &PinMediums_Wave, SIZEOF_ARRAY( PinAudioFormatRanges_WaveBridge ), PinAudioFormatRanges_WaveBridge, KSPIN_DATAFLOW_OUT, KSPIN_COMMUNICATION_NONE, &pinCategory_bridge, &pinName_bridge_line_out, 0 }, 0, 0, 0, NULL, NULL } }; ****************** 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/