1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Public header for WINUSB
7 use shared::minwindef::{UCHAR, ULONG, USHORT};
8 use shared::usb::USBD_PIPE_TYPE;
9 pub const SHORT_PACKET_TERMINATE: ULONG = 0x01;
10 pub const AUTO_CLEAR_STALL: ULONG = 0x02;
11 pub const PIPE_TRANSFER_TIMEOUT: ULONG = 0x03;
12 pub const IGNORE_SHORT_PACKETS: ULONG = 0x04;
13 pub const ALLOW_PARTIAL_READS: ULONG = 0x05;
14 pub const AUTO_FLUSH: ULONG = 0x06;
15 pub const RAW_IO: ULONG = 0x07;
16 pub const MAXIMUM_TRANSFER_SIZE: ULONG = 0x08;
17 pub const RESET_PIPE_ON_RESUME: ULONG = 0x09;
18 pub const DEVICE_SPEED: ULONG = 0x01;
19 pub const LowSpeed: ULONG = 0x01;
20 pub const FullSpeed: ULONG = 0x02;
21 pub const HighSpeed: ULONG = 0x03;
22 DEFINE_GUID!{WinUSB_TestGuid,
23     0xda812bff, 0x12c3, 0x46a2, 0x8e, 0x2b, 0xdb, 0xd3, 0xb7, 0x83, 0x4c, 0x43}
24 STRUCT!{struct WINUSB_PIPE_INFORMATION {
25     PipeType: USBD_PIPE_TYPE,
26     PipeId: UCHAR,
27     MaximumPacketSize: USHORT,
28     Interval: UCHAR,
29 }}
30 pub type PWINUSB_PIPE_INFORMATION = *mut WINUSB_PIPE_INFORMATION;
31 STRUCT!{struct WINUSB_PIPE_INFORMATION_EX {
32     PipeType: USBD_PIPE_TYPE,
33     PipeId: UCHAR,
34     MaximumPacketSize: USHORT,
35     Interval: UCHAR,
36     MaximumBytesPerInterval: ULONG,
37 }}
38 pub type PWINUSB_PIPE_INFORMATION_EX = *mut WINUSB_PIPE_INFORMATION_EX;
39