Windows7 64bit 1394 isochronous attach buffers fail

Hello,

I’m about to rework our driver to work under Windows 7 64bit. While other requests to our devices are working well, the isochronous request REQUEST_ISOCH_ATTACH_BUFFERS fails in the completion routine with STATUS_INVALID_PARAMETER. Unfortunately I don’t get any information which parameter is wrong.

The driver works well under Windows 7 32bit but I can not see a real difference in the driver own logs compared to the logs under 64bit Windows 7.

(I read this posting: http://www.osronline.com/ShowThread.cfm?link=166737
and started the comand script, but the log file with the OHCI logs is unreadable.)

Can anybody help me to figure out the wrong parameter?

Thanks a lot,
Christoph

GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

I’m not sure this will be helpful, but I *believe* from other things I’ve seen that there are problems in Win 7, 64-bit, 1394 ISO handling.

I’ve seen LOTS of very suspicious blue screens reported, most particularly the following:

nt!KeBugCheckEx
Wdf01000!imp_WdfDmaTransactionRelease
1394ohci!IsochRx::WdfEvtNotificationDpc
Wdf01000!FxDpc::FxDpcThunk
nt!KiRetireDpcList
nt!KxRetireDpcList
nt!KiDispatchInterruptContinue

I realize this isn’t specifically what you’re asking. I’m pointing this out just to say that “I think there may be some general problems in this path.”

Peter
OSR

There are several things you have to do, to get your ISO buffers to work
under Win7 and 64bit Windows.

When you have too large buffers, you must limit the buffer size of each
individually queued request to the HostDMAInformation.MaxDmaBufferSize

GET_LOCAL_HOST_INFO7 HostDMAInformation;
/// …

ULONG maxDmaSize = imageSize;
if( HostDMAInformation.MaxDmaBufferSize.QuadPart != 0x80001000 )
{
maxDmaSize = HostDMAInformation.MaxDmaBufferSize.QuadPart;
}

Then your requests must be evenly dividable by the
ISOCH_DESCRIPTOR::nMaxBytesPerFrame size.

I hope that helps.

bye

Christopher Koschack

On 27.04.2010 15:28, Christoph Diener wrote:

Hello,

I’m about to rework our driver to work under Windows 7 64bit. While other requests to our devices are working well, the isochronous request REQUEST_ISOCH_ATTACH_BUFFERS fails in the completion routine with STATUS_INVALID_PARAMETER. Unfortunately I don’t get any information which parameter is wrong.

The driver works well under Windows 7 32bit but I can not see a real difference in the driver own logs compared to the logs under 64bit Windows 7.

(I read this posting: http://www.osronline.com/ShowThread.cfm?link=166737
and started the comand script, but the log file with the OHCI logs is unreadable.)

Can anybody help me to figure out the wrong parameter?

Thanks a lot,
Christoph