For what it's worth, our PCI cards use a DMUS miniport for MIDI I/O. It
works fine on dual processor 2000 & XP.
I remember that there was a minor bug in the DDK sample with handling
PutMessage, but that was for MIDI output. That was a few years ago; I
don't remember the specifics. It's in the mailing list archive somewhere.
Reading through my code, I did notice that I don't hold my spinlock
during the call to PutMessage. That might make a difference.
For what it's worth, here's the code. This is just a modified DDK
sample, so I don't think I'm giving away any trade secrets.
STDMETHODIMP_(NTSTATUS) CMiniportDMusStreamEcho::SourceEvtsToPort() { NTSTATUS ntStatus; ECHOSTATUS Status; DWORD dwMidiByte; LONGLONG llNewTimestamp,llLastTimestamp;
// // Dump the event queue back to the allocator // if (NULL != eventHead) { (void)m_sinkMXF->PutMessage(eventHead); }
} else // render stream { DOUT(DBG_ERROR,("SourceEvtsToPort called on render stream")); ntStatus = STATUS_INVALID_DEVICE_REQUEST; } return ntStatus; }
From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Philip Lukidis Sent: Friday, November 28, 2003 7:22 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: question on DMUS UART
OK...I patched portcls's call to KeInitializeDpc with my driver's routine, which called KeInitializeDpc with the passed parameters, and then called KeSetTargetProcessorDpc, making sure to pass a mask of 0. So far it works fine (previously it would crash right away or in less than 1 minute or so).
This would seem to point to some synchronization problem on the part of the DMUS port. So again I ask did anyone get DMUSUART to work on multiple CPUs? Thanks.
Philip Lukidis
PS: I'll run it over the weekend here with driver verifier verifying portcls.sys, with all options except low resources and DMA checking.
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.de/