By attaching buffers for isochronous transfer with 1394 kmdf sample driver:

the function
---------------------------------------------------------------------------------------------------------------
IsochAttachBuffers( hWnd, szDeviceName, &isochAttachBuffers, TRUE, TRUE );
---------------------------------------------------------------------------------------------------------------

in isochapi.c (:\WINDDK\6000\src\1394\dll\1394api\) from 1394api.dll will be
called.

These function calls
--------------------------------------------------------------------------------------------------------------
DeviceIoControl( hDevice,
IOCTL_ISOCH_ATTACH_BUFFERS,
pIsochAttachBuffers,
ulBufferSize,
pIsochAttachBuffers,
ulBufferSize,
&dwBytesRet,
&overLapped);
--------------------------------------------------------------------------------------------------------------

( These I/O request will be processed by calling t1394_IsochAttachBuffers in
isochapi.c (\WINDDK\6000\src\kmdf\1394\driver\isochapi.c) ).

After all, the IsochAttachBuffers function from 1394api.dll do the
following:
--------------------------------------------------------------------------------------------------------------
if (pIsochAttachBuffers) {
TRACE(TL_TRACE, (hWnd, "pIsochDescriptor = 0x%x\r\n",
pIsochAttachBuffers->pIsochDescriptor));
}
--------------------------------------------------------------------------------------------------------------

I think, in this way, the user knows the value of pIsochDescriptor to detach
buffers.


My problem is:

the value of 'pIsochAttachBuffers->pIsochDescriptor' does not change after
calling DeviceIoControl function, so the value is always 0x0.
I see on DebugView that the kernel sets the 'pIsochDescriptor', but as soon
as it leaves the 't1394_IsochAttachBuffers' function, it gets lost.

How can I make possible to get the pIsochDescriptor information from kernel?
Or did I miss something?

Thanks in advance,
min