| 1 |
/* |
| 2 |
This Software is provided under the Zope Public License (ZPL) Version 2.1. |
| 3 |
|
| 4 |
Copyright (c) 2009, 2010, 2013 by the mingw-w64 project |
| 5 |
|
| 6 |
See the AUTHORS file for the list of contributors to the mingw-w64 project. |
| 7 |
|
| 8 |
This license has been certified as open source. It has also been designated |
| 9 |
as GPL compatible by the Free Software Foundation (FSF). |
| 10 |
|
| 11 |
Redistribution and use in source and binary forms, with or without |
| 12 |
modification, are permitted provided that the following conditions are met: |
| 13 |
|
| 14 |
1. Redistributions in source code must retain the accompanying copyright |
| 15 |
notice, this list of conditions, and the following disclaimer. |
| 16 |
2. Redistributions in binary form must reproduce the accompanying |
| 17 |
copyright notice, this list of conditions, and the following disclaimer |
| 18 |
in the documentation and/or other materials provided with the |
| 19 |
distribution. |
| 20 |
3. Names of the copyright holders must not be used to endorse or promote |
| 21 |
products derived from this software without prior written permission |
| 22 |
from the copyright holders. |
| 23 |
4. The right to distribute this software or to use it for any purpose does |
| 24 |
not give you the right to use Servicemarks (sm) or Trademarks (tm) of |
| 25 |
the copyright holders. Use of them is covered by separate agreement |
| 26 |
with the copyright holders. |
| 27 |
5. If any files are modified, you must cause the modified files to carry |
| 28 |
prominent notices stating that you changed the files and the date of |
| 29 |
any change. |
| 30 |
|
| 31 |
Disclaimer |
| 32 |
|
| 33 |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED |
| 34 |
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| 35 |
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
| 36 |
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, |
| 37 |
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 38 |
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, |
| 39 |
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
| 40 |
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 41 |
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
| 42 |
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 43 |
*/ |
| 44 |
|
| 45 |
#ifndef __WINUSBIO_H |
| 46 |
#define __WINUSBIO_H |
| 47 |
|
| 48 |
#include <winapifamily.h> |
| 49 |
|
| 50 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 51 |
|
| 52 |
#include <windows.h> |
| 53 |
#include <usb.h> /* for USBD_PIPE_TYPE */ |
| 54 |
|
| 55 |
#ifdef __cplusplus |
| 56 |
extern "C" { |
| 57 |
#endif |
| 58 |
|
| 59 |
typedef struct _WINUSB_PIPE_INFORMATION { |
| 60 |
USBD_PIPE_TYPE PipeType; |
| 61 |
UCHAR PipeId; |
| 62 |
USHORT MaximumPacketSize; |
| 63 |
UCHAR Interval; |
| 64 |
} WINUSB_PIPE_INFORMATION, *PWINUSB_PIPE_INFORMATION; |
| 65 |
|
| 66 |
typedef struct _WINUSB_PIPE_INFORMATION_EX { |
| 67 |
USBD_PIPE_TYPE PipeType; |
| 68 |
UCHAR PipeId; |
| 69 |
USHORT MaximumPacketSize; |
| 70 |
UCHAR Interval; |
| 71 |
ULONG MaximumBytesPerInterval; |
| 72 |
} WINUSB_PIPE_INFORMATION_EX, *PWINUSB_PIPE_INFORMATION_EX; |
| 73 |
|
| 74 |
/* constants for WinUsb_Get/SetPipePolicy. */ |
| 75 |
#define SHORT_PACKET_TERMINATE 0x01 |
| 76 |
#define AUTO_CLEAR_STALL 0x02 |
| 77 |
#define PIPE_TRANSFER_TIMEOUT 0x03 |
| 78 |
#define IGNORE_SHORT_PACKETS 0x04 |
| 79 |
#define ALLOW_PARTIAL_READS 0x05 |
| 80 |
#define AUTO_FLUSH 0x06 |
| 81 |
#define RAW_IO 0x07 |
| 82 |
#define MAXIMUM_TRANSFER_SIZE 0x08 |
| 83 |
#define RESET_PIPE_ON_RESUME 0x09 |
| 84 |
|
| 85 |
/* constants for WinUsb_Get/SetPowerPolicy. */ |
| 86 |
#define AUTO_SUSPEND 0x81 |
| 87 |
#define ENABLE_WAKE 0x82 |
| 88 |
#define SUSPEND_DELAY 0x83 |
| 89 |
|
| 90 |
/* constants for WinUsb_QueryDeviceInformation. */ |
| 91 |
#define DEVICE_SPEED 0x01 |
| 92 |
#define LowSpeed 0x01 |
| 93 |
#define FullSpeed 0x02 |
| 94 |
#define HighSpeed 0x03 |
| 95 |
|
| 96 |
#ifdef __cplusplus |
| 97 |
} |
| 98 |
#endif |
| 99 |
|
| 100 |
#include <initguid.h> |
| 101 |
DEFINE_GUID (WinUSB_TestGuid, 0xda812bff, 0x12c3, 0x46a2, 0x8e, 0x2b, 0xdb, 0xd3, 0xb7, 0x83, 0x4c, 0x43); |
| 102 |
|
| 103 |
#endif |
| 104 |
|
| 105 |
#endif /* __WINUSBIO_H */ |
| 106 |
|