IssueIsochTransfer
This function initiates an isochronous transfer with a USB device.
Syntax
USB_TRANSFER IssueIsochTransfer( USB_PIPE hPipe, LPTRANSFER_NOTIFY_ROUTINE lpStartAddress,
LPVOID lpvNotifyParameter, DWORD dwFlags, DWORD dwStartingFrame, DWORD dwFrames, LPCDWORD lpdwLengths, LPVOID lpvBuffer,
ULONG uBufferPhysicalAddress );
Parameters
- hPipe
- [IN] Handle to an open USB pipe.
- lpStartAddress
- [IN] Pointer to the address, which may be NULL, of a callback routine.
- lpvNotifyParameter
- [IN] Pointer to the parameter to pass to a callback routine.
- dwFlags
- [IN] Flags for the transfer. These are declared in the Usbtypes.h header file. Some flags are specific to isochronous transfers. USB_START_ISOCH_ASAP starts transfer as soon as possible, instead of specifying a starting frame. USB_COMPRESS_ISOCH guarantees, for IN transfers, that data is copied contiguously to the user buffer, as opposed to being fragmented if the amount of data is less than the maximum requested for a particular frame.
- dwStartingFrame
- [IN] Specifies the frame number on which transfer starts.
- dwFrames
- [IN] Specifies the number of frames in transfer.
- lpdwLengths
- [IN/OUT] Pointer to an array of lengths, one entry per frame.
- lpvBuffer
- [IN/OUT] Pointer to a data buffer. If a physical buffer address is specified, this must contain the virtual address of the buffer.
- uBufferPhysicalAddress
- [IN/OUT] Specifies the physical address, which may be NULL, of the data buffer.
Return Values
A USB_TRANSFER handle indicates success. NULL indicates failure.
Remarks
This function initiates an isochronous transfer to a USB device on the specified endpoint. Since isochronous transfers must be executed continuously, a sequence of buffers is provided, one of which is transferred for each frame. There is no limit on the number of buffers that may be provided, though each one must be less than or equal to the maximum packet size for the endpoint.
This function is defined in the Mousedrv.cpp file.
See Also
AbortTransfer, GetIsochResults, GetTransferStatus, IsTransferComplete