2002-10-06 Casper Hornstrup <chorns@it.dk>
* include/ddk: New subdir.
* lib/ddk: Ditto.
* include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h,
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h,
miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h,
ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h,
netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h,
ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h,
ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h,
ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h,
ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h,
poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h,
storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h,
upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h,
usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h,
winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h,
xfilter.h): New files.
* lib/ddk/(Makefile.in, apcups.def, cfgmgr32.def, dxapi.def,
hal.def, hid.def, hidparse.def, mcd.def, ndis.def, ntoskrnl.def,
scsiport.def, tdi.def, usbcamd.def, usbcamd2.def, videoprt.def,
win32k.def): Ditto.
2002-10-07 06:18:26 +08:00
|
|
|
/*
|
|
|
|
* usb100.h
|
|
|
|
*
|
|
|
|
* USB 1.0 support
|
|
|
|
*
|
* include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h,
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h,
miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h,
ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h,
netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h,
ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h,
ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h,
ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h,
ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h,
poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h,
storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h,
upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h,
usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h,
winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h,
xfilter.h): Change comment to refer w32api package, not MinGW.
2002-11-15 09:08:17 +08:00
|
|
|
* This file is part of the w32api package.
|
2002-10-06 Casper Hornstrup <chorns@it.dk>
* include/ddk: New subdir.
* lib/ddk: Ditto.
* include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h,
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h,
miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h,
ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h,
netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h,
ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h,
ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h,
ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h,
ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h,
poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h,
storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h,
upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h,
usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h,
winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h,
xfilter.h): New files.
* lib/ddk/(Makefile.in, apcups.def, cfgmgr32.def, dxapi.def,
hal.def, hid.def, hidparse.def, mcd.def, ndis.def, ntoskrnl.def,
scsiport.def, tdi.def, usbcamd.def, usbcamd2.def, videoprt.def,
win32k.def): Ditto.
2002-10-07 06:18:26 +08:00
|
|
|
*
|
|
|
|
* Contributors:
|
|
|
|
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
|
|
*
|
|
|
|
* This source code is offered for use in the public domain. You may
|
|
|
|
* use, modify or distribute it freely.
|
|
|
|
*
|
|
|
|
* This code is distributed in the hope that it will be useful but
|
|
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
* include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h,
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h,
miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h,
ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h,
netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h,
ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h,
ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h,
ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h,
ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h,
poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h,
storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h,
upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h,
usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h,
winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h,
xfilter.h): Fix typo in disclaimer comment.
2002-11-13 05:34:07 +08:00
|
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
2002-10-06 Casper Hornstrup <chorns@it.dk>
* include/ddk: New subdir.
* lib/ddk: Ditto.
* include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h,
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h,
miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h,
ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h,
netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h,
ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h,
ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h,
ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h,
ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h,
poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h,
storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h,
upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h,
usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h,
winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h,
xfilter.h): New files.
* lib/ddk/(Makefile.in, apcups.def, cfgmgr32.def, dxapi.def,
hal.def, hid.def, hidparse.def, mcd.def, ndis.def, ntoskrnl.def,
scsiport.def, tdi.def, usbcamd.def, usbcamd2.def, videoprt.def,
win32k.def): Ditto.
2002-10-07 06:18:26 +08:00
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __USB100_H
|
|
|
|
#define __USB100_H
|
|
|
|
|
|
|
|
#if __GNUC__ >=3
|
|
|
|
#pragma GCC system_header
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#pragma pack(push,4)
|
|
|
|
|
|
|
|
#include "ntddk.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define MAXIMUM_USB_STRING_LENGTH 255
|
|
|
|
|
|
|
|
#define USB_DEVICE_CLASS_RESERVED 0x00
|
|
|
|
#define USB_DEVICE_CLASS_AUDIO 0x01
|
|
|
|
#define USB_DEVICE_CLASS_COMMUNICATIONS 0x02
|
|
|
|
#define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03
|
|
|
|
#define USB_DEVICE_CLASS_MONITOR 0x04
|
|
|
|
#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
|
|
|
|
#define USB_DEVICE_CLASS_POWER 0x06
|
|
|
|
#define USB_DEVICE_CLASS_PRINTER 0x07
|
|
|
|
#define USB_DEVICE_CLASS_STORAGE 0x08
|
|
|
|
#define USB_DEVICE_CLASS_HUB 0x09
|
|
|
|
#define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
|
|
|
|
|
|
|
|
#define USB_RESERVED_DESCRIPTOR_TYPE 0x06
|
|
|
|
#define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07
|
|
|
|
#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08
|
|
|
|
|
|
|
|
#define USB_REQUEST_GET_STATUS 0x00
|
|
|
|
#define USB_REQUEST_CLEAR_FEATURE 0x01
|
|
|
|
#define USB_REQUEST_SET_FEATURE 0x03
|
|
|
|
#define USB_REQUEST_SET_ADDRESS 0x05
|
|
|
|
#define USB_REQUEST_GET_DESCRIPTOR 0x06
|
|
|
|
#define USB_REQUEST_SET_DESCRIPTOR 0x07
|
|
|
|
#define USB_REQUEST_GET_CONFIGURATION 0x08
|
|
|
|
#define USB_REQUEST_SET_CONFIGURATION 0x09
|
|
|
|
#define USB_REQUEST_GET_INTERFACE 0x0A
|
|
|
|
#define USB_REQUEST_SET_INTERFACE 0x0B
|
|
|
|
#define USB_REQUEST_SYNC_FRAME 0x0C
|
|
|
|
|
|
|
|
#define USB_GETSTATUS_SELF_POWERED 0x01
|
|
|
|
#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02
|
|
|
|
|
|
|
|
#define BMREQUEST_HOST_TO_DEVICE 0
|
|
|
|
#define BMREQUEST_DEVICE_TO_HOST 1
|
|
|
|
|
|
|
|
#define BMREQUEST_STANDARD 0
|
|
|
|
#define BMREQUEST_CLASS 1
|
|
|
|
#define BMREQUEST_VENDOR 2
|
|
|
|
|
|
|
|
#define BMREQUEST_TO_DEVICE 0
|
|
|
|
#define BMREQUEST_TO_INTERFACE 1
|
|
|
|
#define BMREQUEST_TO_ENDPOINT 2
|
|
|
|
#define BMREQUEST_TO_OTHER 3
|
|
|
|
|
|
|
|
/* USB_COMMON_DESCRIPTOR.bDescriptorType constants */
|
|
|
|
#define USB_DEVICE_DESCRIPTOR_TYPE 0x01
|
|
|
|
#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02
|
|
|
|
#define USB_STRING_DESCRIPTOR_TYPE 0x03
|
|
|
|
#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04
|
|
|
|
#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05
|
|
|
|
|
|
|
|
typedef struct _USB_COMMON_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
} USB_COMMON_DESCRIPTOR, *PUSB_COMMON_DESCRIPTOR;
|
|
|
|
|
|
|
|
#define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d << 8 | i))
|
|
|
|
|
|
|
|
/* USB_CONFIGURATION_DESCRIPTOR.bmAttributes constants */
|
|
|
|
#define USB_CONFIG_POWERED_MASK 0xc0
|
|
|
|
#define USB_CONFIG_BUS_POWERED 0x80
|
|
|
|
#define USB_CONFIG_SELF_POWERED 0x40
|
|
|
|
#define USB_CONFIG_REMOTE_WAKEUP 0x20
|
|
|
|
|
|
|
|
typedef struct _USB_CONFIGURATION_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
USHORT wTotalLength;
|
|
|
|
UCHAR bNumInterfaces;
|
|
|
|
UCHAR iConfiguration;
|
|
|
|
UCHAR bmAttributes;
|
|
|
|
UCHAR MaxPower;
|
|
|
|
} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;
|
|
|
|
|
|
|
|
typedef struct _USB_DEVICE_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
USHORT bcdUSB;
|
|
|
|
UCHAR bDeviceClass;
|
|
|
|
UCHAR bDeviceSubClass;
|
|
|
|
UCHAR bDeviceProtocol;
|
|
|
|
UCHAR bMaxPacketSize0;
|
|
|
|
USHORT idVendor;
|
|
|
|
USHORT idProduct;
|
|
|
|
USHORT bcdDevice;
|
|
|
|
UCHAR iManufacturer;
|
|
|
|
UCHAR iProduct;
|
|
|
|
UCHAR iSerialNumber;
|
|
|
|
UCHAR bNumConfigurations;
|
|
|
|
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
|
|
|
|
|
|
|
|
#define USB_ENDPOINT_DIRECTION_MASK 0x80
|
|
|
|
|
|
|
|
#define USB_ENDPOINT_DIRECTION_OUT(x) (!((x) & USB_ENDPOINT_DIRECTION_MASK))
|
|
|
|
#define USB_ENDPOINT_DIRECTION_IN(x) ((x) & USB_ENDPOINT_DIRECTION_MASK)
|
|
|
|
|
|
|
|
/* USB_ENDPOINT_DESCRIPTOR.bmAttributes constants */
|
|
|
|
#define USB_ENDPOINT_TYPE_MASK 0x03
|
|
|
|
#define USB_ENDPOINT_TYPE_CONTROL 0x00
|
|
|
|
#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
|
|
|
|
#define USB_ENDPOINT_TYPE_BULK 0x02
|
|
|
|
#define USB_ENDPOINT_TYPE_INTERRUPT 0x03
|
|
|
|
|
|
|
|
typedef struct _USB_ENDPOINT_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
UCHAR bEndpointAddress;
|
|
|
|
UCHAR bmAttributes;
|
|
|
|
USHORT wMaxPacketSize;
|
|
|
|
UCHAR bInterval;
|
|
|
|
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
|
|
|
|
|
|
|
|
#define USB_FEATURE_ENDPOINT_STALL 0x0000
|
|
|
|
#define USB_FEATURE_REMOTE_WAKEUP 0x0001
|
|
|
|
|
|
|
|
typedef struct _USB_INTERFACE_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
UCHAR bInterfaceNumber;
|
|
|
|
UCHAR bAlternateSetting;
|
|
|
|
UCHAR bNumEndpoints;
|
|
|
|
UCHAR bInterfaceClass;
|
|
|
|
UCHAR bInterfaceSubClass;
|
|
|
|
UCHAR bInterfaceProtocol;
|
|
|
|
UCHAR iInterface;
|
|
|
|
} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;
|
|
|
|
|
|
|
|
typedef struct _USB_STRING_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
WCHAR bString[1];
|
|
|
|
} USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR;
|
|
|
|
|
|
|
|
typedef struct _USB_HUB_DESCRIPTOR {
|
|
|
|
UCHAR bDescriptorLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
UCHAR bNumberOfPorts;
|
|
|
|
USHORT wHubCharacteristics;
|
|
|
|
UCHAR bPowerOnToPowerGood;
|
|
|
|
UCHAR bHubControlCurrent;
|
|
|
|
UCHAR bRemoveAndPowerMask[64];
|
|
|
|
} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;
|
|
|
|
|
|
|
|
#define USB_SUPPORT_D0_COMMAND 0x01
|
|
|
|
#define USB_SUPPORT_D1_COMMAND 0x02
|
|
|
|
#define USB_SUPPORT_D2_COMMAND 0x04
|
|
|
|
#define USB_SUPPORT_D3_COMMAND 0x08
|
|
|
|
|
|
|
|
#define USB_SUPPORT_D1_WAKEUP 0x10
|
|
|
|
#define USB_SUPPORT_D2_WAKEUP 0x20
|
|
|
|
|
|
|
|
typedef struct _USB_CONFIGURATION_POWER_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
UCHAR SelfPowerConsumedD0[3];
|
|
|
|
UCHAR bPowerSummaryId;
|
|
|
|
UCHAR bBusPowerSavingD1;
|
|
|
|
UCHAR bSelfPowerSavingD1;
|
|
|
|
UCHAR bBusPowerSavingD2;
|
|
|
|
UCHAR bSelfPowerSavingD2;
|
|
|
|
UCHAR bBusPowerSavingD3;
|
|
|
|
UCHAR bSelfPowerSavingD3;
|
|
|
|
USHORT TransitionTimeFromD1;
|
|
|
|
USHORT TransitionTimeFromD2;
|
|
|
|
USHORT TransitionTimeFromD3;
|
|
|
|
} USB_CONFIGURATION_POWER_DESCRIPTOR, *PUSB_CONFIGURATION_POWER_DESCRIPTOR;
|
|
|
|
|
|
|
|
#define USB_FEATURE_INTERFACE_POWER_D0 0x0002
|
|
|
|
#define USB_FEATURE_INTERFACE_POWER_D1 0x0003
|
|
|
|
#define USB_FEATURE_INTERFACE_POWER_D2 0x0004
|
|
|
|
#define USB_FEATURE_INTERFACE_POWER_D3 0x0005
|
|
|
|
|
|
|
|
typedef struct _USB_INTERFACE_POWER_DESCRIPTOR {
|
|
|
|
UCHAR bLength;
|
|
|
|
UCHAR bDescriptorType;
|
|
|
|
UCHAR bmCapabilitiesFlags;
|
|
|
|
UCHAR bBusPowerSavingD1;
|
|
|
|
UCHAR bSelfPowerSavingD1;
|
|
|
|
UCHAR bBusPowerSavingD2;
|
|
|
|
UCHAR bSelfPowerSavingD2;
|
|
|
|
UCHAR bBusPowerSavingD3;
|
|
|
|
UCHAR bSelfPowerSavingD3;
|
|
|
|
USHORT TransitionTimeFromD1;
|
|
|
|
USHORT TransitionTimeFromD2;
|
|
|
|
USHORT TransitionTimeFromD3;
|
|
|
|
} USB_INTERFACE_POWER_DESCRIPTOR, *PUSB_INTERFACE_POWER_DESCRIPTOR;
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* __USB100_H */
|