libusb_fill_interrupt_transfer函数体
时间: 2023-08-28 13:07:55 浏览: 119
libusb_fill_interrupt_transfer函数用于填充一个LIBUSB_TRANSFER_TYPE_INTERRUPT类型的传输结构体。它的函数原型如下:
int libusb_fill_interrupt_transfer(struct libusb_transfer* transfer, libusb_device_handle* dev_handle, unsigned char endpoint, unsigned char* buffer, int length, libusb_transfer_cb_fn callback, void* user_data, unsigned int timeout);
参数说明:
- transfer:指向一个要填充的传输结构体的指针。
- dev_handle:用于传输的设备句柄。
- endpoint:设备的端点地址。
- buffer:传输数据的缓冲区。
- length:要传输的数据长度。
- callback:传输完成后回调函数的指针。
- user_data:传递给回调函数的用户数据指针。
- timeout:传输超时时间,单位为毫秒。
函数返回值:
- 0:成功。
- 其他:失败。
函数体如下:
```
int libusb_fill_interrupt_transfer(struct libusb_transfer* transfer, libusb_device_handle* dev_handle, unsigned char endpoint, unsigned char* buffer, int length, libusb_transfer_cb_fn callback, void* user_data, unsigned int timeout)
{
transfer->dev_handle = dev_handle;
transfer->endpoint = endpoint;
transfer->type = LIBUSB_TRANSFER_TYPE_INTERRUPT;
transfer->buffer = buffer;
transfer->length = length;
transfer->callback = callback;
transfer->user_data = user_data;
transfer->timeout = timeout;
transfer->status = LIBUSB_TRANSFER_COMPLETED;
transfer->actual_length = length;
transfer->flags = 0;
return 0;
}
```
该函数首先将传入的参数分别赋值给传输结构体中的成员变量,然后将传输状态标记为已完成,并返回0表示成功。
阅读全文