LPISSUE_CONTROL_TRANSFER (Windows CE 5.0)
This function initiates a control transfer with a universal serial bus (USB) device on the specified endpoint.
typedef USB_TRANSFER (* LPISSUE_CONTROL_TRANSFER)( USB_PIPE hPipe, LPTRANSFER_NOTIFY_ROUTINE lpStartAddress, LPVOID lpvNotifyParameter, DWORD dwFlags, LPCVOID lpvControlHeader, DWORD dwBufferSize, LPVOID lpvBuffer, ULONG uBufferPhysicalAddress);
Parameters
- hPipe
[in] Handle to an open USB pipe. - lpStartAddress
[in] Pointer to the address of a callback routine, or NULL if no callback routine is necessary. - lpvNotifyParameter
[in] Pointer to the parameter to pass to a callback routine of type LPTRANSFER_NOTIFY_ROUTINE. - dwFlags
[in] Flags for the transfer. Usbtypes.h declares the following flags:- USB_IN_TRANSFER
- USB_OUT_TRANSFER
- USB_NO_WAIT
- USB_SHORT_TRANSFER_OK
- USB_START_ISOCH_ASAP
- USB_COMPRESS_ISOCH
- USB_SEND_TO_DEVICE
- USB_SEND_TO_INTERFACE
- USB_SEND_TO_ENDPOINT
- USB_DONT_BLOCK_FOR_MEM
- lpvControlHeader
[in] Pointer to control header, 8 bytes. - dwBufferSize
[in] Size of the data buffer. - lpvBuffer
[in] Pointer to a data buffer. If a physical buffer address is specified, this must contain the virtual address of the buffer. - uBufferPhysicalAddress
[in] Physical address, which might be NULL, of the data buffer.
Return Values
A USB_TRANSFER handle indicates success. NULL indicates failure. IssueControlTransfer behaves either synchronously or asynchronously, depending on the value you provide for lpStartAddress and whether dwFlags contains the USB_NO_WAIT flag.
The following table shows the possible flags.
lpStartAddress | dwFlags | USB_NO_WAIT | Behavior |
---|---|---|
NULL | 0 | Synchronous |
NULL | USB_NO_WAIT | Asynchronous |
Non-NULL | 0 | Asynchronous |
Non-NULL | USB_NO_WAIT | Asynchronous |
When behaving asynchronously, this function invokes the callback function optionally specified by lpStartAddress when the transfer is complete.
Remarks
This function initiates a control transfer to a USB device.
Requirements
OS Versions: Windows CE 2.10 and later.
Header: Usbdi.h.
See Also
LPABORT_TRANSFER | LPGET_TRANSFER_STATUS | LPIS_TRANSFER_COMPLETE | LPTRANSFER_NOTIFY_ROUTINE
Send Feedback on this topic to the authors