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