Author: akhaldi
Date: Thu Mar 4 23:58:41 2010
New Revision: 45846
URL:
http://svn.reactos.org/svn/reactos?rev=45846&view=rev
Log:
More work on USB related definitions
Added:
branches/header-work/include/ddk/usbprotocoldefs.h (with props)
branches/header-work/include/ddk/usbstorioctl.h (with props)
Modified:
branches/header-work/include/ddk/usbbusif.h
branches/header-work/include/ddk/usbdlib.h
branches/header-work/include/ddk/usbscan.h
Modified: branches/header-work/include/ddk/usbbusif.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbbusi…
==============================================================================
--- branches/header-work/include/ddk/usbbusif.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/usbbusif.h [iso-8859-1] Thu Mar 4 23:58:41 2010
@@ -18,13 +18,13 @@
typedef VOID
(USB_BUSIFFN *PUSB_BUSIFFN_GETUSBDI_VERSION) (
IN PVOID,
- OUT PUSBD_VERSION_INFORMATION,
- OUT PULONG);
+ OUT PUSBD_VERSION_INFORMATION OPTIONAL,
+ OUT PULONG OPTIONAL);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME) (
IN PVOID,
- OUT PULONG);
+ OUT PULONG OPTIONAL);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_ENUM_LOG_ENTRY) (
@@ -32,31 +32,31 @@
IN ULONG,
IN ULONG,
IN ULONG,
- IN ULONG);
+ IN ULONG);
typedef struct _USB_BUS_INFORMATION_LEVEL_0 {
ULONG TotalBandwidth;
- ULONG ConsumedBandwidth;
+ ULONG ConsumedBandwidth;
} USB_BUS_INFORMATION_LEVEL_0, *PUSB_BUS_INFORMATION_LEVEL_0;
typedef struct _USB_BUS_INFORMATION_LEVEL_1 {
ULONG TotalBandwidth;
- ULONG ConsumedBandwidth;
+ ULONG ConsumedBandwidth;
ULONG ControllerNameLength;
- WCHAR ControllerNameUnicodeString[1];
+ WCHAR ControllerNameUnicodeString[1];
} USB_BUS_INFORMATION_LEVEL_1, *PUSB_BUS_INFORMATION_LEVEL_1;
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_INFORMATION) (
IN PVOID,
IN ULONG,
- INout PVOID,
+ IN OUT PVOID,
OUT PULONG,
- OUT PULONG);
+ OUT PULONG OPTIONAL);
typedef BOOLEAN
(USB_BUSIFFN *PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED) (
- IN PVOID);
+ IN PVOID OPTIONAL);
#define USB_BUSIF_USBDI_VERSION_0 0x0000
#define USB_BUSIF_USBDI_VERSION_1 0x0001
@@ -111,19 +111,19 @@
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME_EX) (
- IN PVOID,
- OUT PULONG);
+ IN PVOID OPTIONAL,
+ OUT PULONG OPTIONAL);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE) (
- IN PVOID,
- OUT PULONG,
- OUT PUSHORT,
- OUT PUSHORT,
- OUT PUCHAR,
- OUT PUCHAR,
- OUT PUCHAR,
- OUT PUCHAR);
+ IN PVOID OPTIONAL,
+ OUT PULONG OPTIONAL,
+ OUT PUSHORT OPTIONAL,
+ OUT PUSHORT OPTIONAL,
+ OUT PUCHAR OPTIONAL,
+ OUT PUCHAR OPTIONAL,
+ OUT PUCHAR OPTIONAL,
+ OUT PUCHAR OPTIONAL);
typedef struct _USB_BUS_INTERFACE_USBDI_V3 {
USHORT Size;
@@ -162,7 +162,7 @@
(USB_BUSIFFN *USBC_START_DEVICE_CALLBACK)(
IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor,
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
- PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
+ OUT PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
OUT PULONG FunctionDescriptorBufferLength,
IN PDEVICE_OBJECT FdoDeviceObject,
IN PDEVICE_OBJECT PdoDeviceObject);
Modified: branches/header-work/include/ddk/usbdlib.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbdlib…
==============================================================================
--- branches/header-work/include/ddk/usbdlib.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/usbdlib.h [iso-8859-1] Thu Mar 4 23:58:41 2010
@@ -1,12 +1,9 @@
-#ifndef USBDLIB_H__
-#define USBDLIB_H__
-
-
-typedef struct _USBD_INTERFACE_LIST_ENTRY
-{
- PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
- PUSBD_INTERFACE_INFORMATION Interface;
-}USBD_INTERFACE_LIST_ENTRY, *PUSBD_INTERFACE_LIST_ENTRY;
+#pragma once
+
+typedef struct _USBD_INTERFACE_LIST_ENTRY {
+ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
+ PUSBD_INTERFACE_INFORMATION Interface;
+} USBD_INTERFACE_LIST_ENTRY, *PUSBD_INTERFACE_LIST_ENTRY;
#define UsbBuildInterruptOrBulkTransferRequest(urb,length, pipeHandle, transferBuffer,
transferBufferMDL, transferBufferLength, transferFlags, link) \
{
\
@@ -43,7 +40,6 @@
(urb)->UrbControlGetStatusRequest.Index = (index);
\
(urb)->UrbControlGetStatusRequest.UrbLink = (link);
\
}
-
#define UsbBuildFeatureRequest(urb, op, featureSelector, index, link) \
{ \
@@ -120,102 +116,87 @@
#define GET_ISO_URB_SIZE(n) (sizeof(struct _URB_ISOCH_TRANSFER)+ \
sizeof(USBD_ISO_PACKET_DESCRIPTOR)*n)
-
#ifndef _USBD_
DECLSPEC_IMPORT
VOID
NTAPI
USBD_GetUSBDIVersion(
- OUT PUSBD_VERSION_INFORMATION VersionInformation
-);
-
+ OUT PUSBD_VERSION_INFORMATION VersionInformation);
DECLSPEC_IMPORT
PUSB_INTERFACE_DESCRIPTOR
NTAPI
USBD_ParseConfigurationDescriptor(
- IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
- IN UCHAR InterfaceNumber,
- IN UCHAR AlternateSetting
-);
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
+ IN UCHAR InterfaceNumber,
+ IN UCHAR AlternateSetting);
DECLSPEC_IMPORT
PURB
NTAPI
USBD_CreateConfigurationRequest(
- IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
- OUT PUSHORT Siz
-);
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
+ OUT PUSHORT Siz);
DECLSPEC_IMPORT
PUSB_COMMON_DESCRIPTOR
NTAPI
USBD_ParseDescriptors(
- IN PVOID DescriptorBuffer,
- IN ULONG TotalLength,
- IN PVOID StartPosition,
- IN LONG DescriptorType
-);
+ IN PVOID DescriptorBuffer,
+ IN ULONG TotalLength,
+ IN PVOID StartPosition,
+ IN LONG DescriptorType);
DECLSPEC_IMPORT
PUSB_INTERFACE_DESCRIPTOR
NTAPI
USBD_ParseConfigurationDescriptorEx(
- IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
- IN PVOID StartPosition,
- IN LONG InterfaceNumber,
- IN LONG AlternateSetting,
- IN LONG InterfaceClass,
- IN LONG InterfaceSubClass,
- IN LONG InterfaceProtocol
-);
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
+ IN PVOID StartPosition,
+ IN LONG InterfaceNumber,
+ IN LONG AlternateSetting,
+ IN LONG InterfaceClass,
+ IN LONG InterfaceSubClass,
+ IN LONG InterfaceProtocol);
DECLSPEC_IMPORT
PURB
NTAPI
USBD_CreateConfigurationRequestEx(
- IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
- IN PUSBD_INTERFACE_LIST_ENTRY InterfaceList
-);
-
-
-DECLSPEC_IMPORT
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
+ IN PUSBD_INTERFACE_LIST_ENTRY InterfaceList);
+
+DECLSPEC_EXPORT
ULONG
NTAPI
USBD_GetInterfaceLength(
- IN PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor,
- IN PUCHAR BufferEnd
-);
-
-DECLSPEC_IMPORT
+ IN PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor,
+ IN PUCHAR BufferEnd);
+
+DECLSPEC_EXPORT
VOID
NTAPI
USBD_RegisterHcFilter(
- IN PDEVICE_OBJECT DeviceObject,
- IN PDEVICE_OBJECT FilterDeviceObject
-);
-
-
-
-DECLSPEC_IMPORT
+ IN PDEVICE_OBJECT DeviceObject,
+ IN PDEVICE_OBJECT FilterDeviceObject);
+
+DECLSPEC_EXPORT
NTSTATUS
NTAPI
USBD_GetPdoRegistryParameter(
- IN PDEVICE_OBJECT PhysicalDeviceObject,
- IN PVOID Parameter,
- IN ULONG ParameterLength,
- IN PWSTR KeyName,
- IN ULONG KeyNameLength
-);
-
-DECLSPEC_IMPORT
+ IN PDEVICE_OBJECT PhysicalDeviceObject,
+ IN OUT PVOID Parameter,
+ IN ULONG ParameterLength,
+ IN PWSTR KeyName,
+ IN ULONG KeyNameLength);
+
+DECLSPEC_EXPORT
NTSTATUS
NTAPI
USBD_QueryBusTime(
- IN PDEVICE_OBJECT RootHubPdo,
- OUT PULONG CurrentFrame
-);
+ IN PDEVICE_OBJECT RootHubPdo,
+ OUT PULONG CurrentFrame);
#if (NTDDI_VERSION >= NTDDI_WINXP)
@@ -223,10 +204,9 @@
ULONG
NTAPI
USBD_CalculateUsbBandwidth(
- IN ULONG MaxPacketSize,
- IN UCHAR EndpointType,
- IN BOOLEAN LowSpeed
-);
+ IN ULONG MaxPacketSize,
+ IN UCHAR EndpointType,
+ IN BOOLEAN LowSpeed);
#endif
@@ -236,16 +216,12 @@
USBD_STATUS
NTAPI
USBD_ValidateConfigurationDescriptor(
- IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc,
- IN ULONG BufferLength,
- IN USHORT Level,
- OUT PUCHAR *Offset,
- IN ULONG Tag
-);
-
-
-#endif
-
-#endif
-
-#endif
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc,
+ IN ULONG BufferLength,
+ IN USHORT Level,
+ OUT PUCHAR *Offset,
+ IN ULONG Tag OPTIONAL);
+
+#endif
+
+#endif
Added: branches/header-work/include/ddk/usbprotocoldefs.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbprot…
==============================================================================
--- branches/header-work/include/ddk/usbprotocoldefs.h (added)
+++ branches/header-work/include/ddk/usbprotocoldefs.h [iso-8859-1] Thu Mar 4 23:58:41
2010
@@ -1,0 +1,677 @@
+#pragma once
+
+#include <PSHPACK1.h>
+
+#define USB_UnConnected_Device_Address 0
+#define USB_UNCONNECTED_ADDRESS(address) ( USB_UnConnected_Device_Address == (address))
+#define USB_CONNECTED_ADDRESS(address) ( USB_UnConnected_Device_Address != (address) )
+
+#define PID_OUT 1
+#define PID_IN 9
+#define PID_SOF 5
+#define PID_SETUP 13
+
+#define PID_DATA0 3
+#define PID_DATA1 11
+#define PID_DATA2 7
+#define PID_MDATA 15
+
+#define USB_ACK 2
+#define USB_NAK 10
+#define USB_STALL 14
+#define USB_NYET 6
+
+#define USB_PRE 12
+#define USB_ERR 12
+#define USB_SPLIT 8
+#define USB_PING 4
+
+#define USB_TIMEOUT 0
+
+#define USB_SPEC 0x0200
+#define HID_SPEC 0x0101
+
+#define USB_20_SPEC 0x0200
+#define USB_11_SPEC 0x0110
+#define USB_10_SPEC 0x0100
+
+#define HID_MAX_PACKET_SIZE0 0x08
+#define MICROSOFT_VENDOR_ID 0x045E
+#define HID_DEVICE_RELEASE 0x0100
+
+#define HID_MAX_PACKET_SIZE 0x0008
+#define HID_POLLING_INTERVAL 0x0A
+#define MAX_POLLING_INTERVAL 0xFF
+
+#define USB_DEFAULT_KEYBOARD_PRODUCT_ID 0x000B
+#define USB_DEFAULT_MOUSE_PRODUCT_ID 0x0040
+
+#define DEVICE_DESCRIPTOR 0x01
+#define CONFIGURATION_DESCRIPTOR 0x02
+#define STRING_DESCRIPTOR 0x03
+#define INTERFACE_DESCRIPTOR 0x04
+#define ENDPOINT_DESCRIPTOR 0x05
+#define QUALIFIER_DESCRIPTOR 0x06
+#define OTHER_SPEED_DESCRIPTOR 0x07
+#define INTERFACE_POWER_DESCRIPTOR 0x08
+
+#define HID_DESCRIPTOR 0x21
+#define REPORT_DESCRIPTOR 0x22
+#define PHYSICAL_DESCRIPTOR 0x23
+#define HUB_DESCRIPTOR 0x29
+
+#define USB_DESCRIPTOR_TYPE_STD 0
+#define USB_DESCRIPTOR_TYPE_CLASS 1
+#define USB_DESCRIPTOR_TYPE_VENDOR 2
+#define USB_DESCRIPTOR_TYPE_RESERVED 3
+
+#define DIR_HOST_TO_DEVICE 0
+#define DIR_DEVICE_TO_HOST 1
+
+#define TYPE_STANDARD 0
+#define TYPE_CLASS 1
+#define TYPE_VENDOR 2
+#define TYPE_RESERVED 3
+
+#define RCPT_DEVICE 0
+#define RCPT_INTERFACE 1
+#define RCPT_ENDPOINT 2
+#define RCPT_OTHER 3
+#define RCPT_PORT 4
+#define RCPT_RPIPE 5
+
+#if !defined(MIDL_PASS)
+#define USB_MAKE_REQUEST_TYPE(direction, type, recipient) (BYTE)( ((BYTE)direction
<< 7) | ((BYTE)type << 5) | ((BYTE)recipient & 0x07) )
+#endif
+
+#define GET_STATUS 0
+#define CLEAR_FEATURE 1
+#define SET_FEATURE 3
+#define SET_ADDRESS 5
+#define GET_DESCRIPTOR 6
+#define SET_DESCRIPTOR 7
+#define GET_CONFIGURATION 8
+#define SET_CONFIGURATION 9
+#define GET_INTERFACE 10
+#define SET_INTERFACE 11
+#define SYNCH_FRAME 12
+
+#define USB_BULK_ONLY_MASS_STG_RESET 0xFF
+#define USB_BULK_ONLY_MASS_STG_GET_MAX_LUN 0xFE
+
+#define GET_REPORT 0x01
+#define GET_IDLE 0x02
+#define GET_PROTOCOL 0x03
+#define SET_REPORT 0x09
+#define SET_IDLE 0x0A
+#define SET_PROTOCOL 0x0B
+
+#define ADD_MMC_IE 20
+#define REMOVE_MMC_IE 21
+#define SET_NUM_DNTS 22
+#define SET_CLUSTER_ID 23
+#define SET_DEVICE_INFO 24
+#define GET_TIME 25
+#define SET_STREAM_INDEX 26
+#define SET_WUSB_MAS 27
+#define WUSB_CH_STOP 28
+
+#define EXEC_RC_CMD 40
+
+#define TIME_ADJ 0x01
+#define TIME_BPST 0x02
+#define TIME_WUSB 0x03
+
+#define HID_REPORT_TYPE_INPUT 0x01
+#define HID_REPORT_TYPE_OUTPUT 0x02
+#define HID_REPORT_TYPE_FEATURE 0x03
+
+#define HID_PROTOCOL_TYPE_BOOT 0x00
+#define HID_PROTOCOL_TYPE_REPORT 0x01
+
+#define HUB_DEVICE_PROTOCOL_1X 0
+#define HUB_DEVICE_PROTOCOL_SINGLE_TT 1
+#define HUB_DEVICE_PROTOCOL_MULTI_TT 2
+
+#define HUB_INTERFACE_PROTOCOL_1X 0
+#define HUB_INTERFACE_PROTOCOL_SINGLE_TT 0
+#define HUB_INTERFACE_PROTOCOL_MULTI_TT_IN_SINGLE_TT_MODE 1
+#define HUB_INTERFACE_PROTOCOL_MULTI_TT_IN_MULTI_TT_MODE 2
+
+#define CLEAR_TT_BUFFER 8
+#define RESET_TT 9
+#define GET_TT_STATE 10
+#define STOP_TT 11
+
+#define C_HUB_LOCAL_POWER 0
+#define C_HUB_OVER_CURRENT 1
+#define PORT_CONNECTION 0
+#define PORT_ENABLE 1
+#define PORT_SUSPEND 2
+#define PORT_OVER_CURRENT 3
+#define PORT_RESET 4
+#define PORT_POWER 8
+#define PORT_LOW_SPEED 9
+#define C_PORT_CONNECTION 16
+#define C_PORT_ENABLE 17
+#define C_PORT_SUSPEND 18
+#define C_PORT_OVER_CURRENT 19
+#define C_PORT_RESET 20
+#define PORT_TEST 21
+#define PORT_INDICATOR 22
+
+#define USBSETUPSIZE 8
+#define USBINREQUEST 128
+
+#define BM_GET_DEVICE 128
+#define BM_GET_INTERFACE 129
+#define BM_GET_ENDPOINT 130
+
+#define BM_SET_DEVICE 0
+#define BM_SET_INTERFACE 1
+#define BM_SET_ENDPOINT 2
+
+#define HALT_ENDPOINT 0
+#define REMOTE_WAKEUP 1
+#define TEST_MODE 2
+
+#define DEVICE_DESCRIPTION_TYPE 0x100
+#define QUALIFIER_DESCRIPTION_TYPE 0x600
+#define OTHER_SPEED_DESCRIPTION_TYPE 0x700
+#define CONFIG_DESCRIPTION_TYPE 0x200
+#define STRING_DESCRIPTION_TYPE 0x300
+#define MSOS_DESCRIPTION_TYPE 0x3EE
+
+#define CONFIG_BUS_POWERED 0x80
+#define CONFIG_SELF_POWERED 0x40
+#define CONFIG_REMOTE_WAKEUP 0x20
+
+#define USB_WA_MULTIFUNCTION 0x02
+#define USB_WA_PROTOCOL 0x01
+#define USB_RADIO_CONTROL 0x2
+
+#define USB_HID_CLASS_CODE 0x03
+#define USB_MASS_STORAGE_CLASS_CODE 0x08
+#define USB_HUB_CLASS_CODE 0x09
+#define USB_MISCELLANEOUS 0xEF
+#define USB_WIRELESS_WA 0xE0
+
+#define BOOT_INTERFACE_SUBCLASS 0x01
+#define COMMON_CLASS 0x02
+#define USB_RF_CONTROL 0x01
+
+#define PROTOCOL_NONE 0x00
+#define PROTOCOL_KEYBOARD 0x01
+#define PROTOCOL_MOUSE 0x02
+
+#define EP_OUT 0
+#define EP_IN 1
+
+#define MAKE_ENDPOINT_ADDRESS(num, dir) ( ((BYTE)(dir) << 7) | ((BYTE)(num)
& 0x0F) )
+
+#define ENDPOINT_TYPE 0x03
+#define CONTROL_ENDPOINT 0
+#define ISOCHRONOUS_ENDPOINT 1
+#define BULK_ENDPOINT 2
+#define INTERRUPT_ENDPOINT 3
+
+typedef union _USBDESCRIPTORTYPE {
+ BYTE Byte;
+#if !defined(MIDL_PASS)
+ struct Bits {
+ BYTE Descriptor:5;
+ BYTE Type:2;
+ BYTE Reserved:1;
+ } Bits;
+#endif
+} USBDESCRIPTORTYPE;
+
+typedef union _USBCONFIGATTRIBS {
+ BYTE Byte;
+#if !defined(MIDL_PASS)
+ struct Bits {
+ BYTE bReserved0_4:5;
+ BYTE bRemoteWakeup:1;
+ BYTE bSelfPowered:1;
+ BYTE bReserved7:1;
+ } Bits;
+#endif
+} USBCONFIGATTRIBS;
+
+typedef union _USBREQUESTTYPE {
+ BYTE Byte;
+#if !defined(MIDL_PASS)
+ struct Bits {
+ BYTE Recipient:5;
+ BYTE Type:2;
+ BYTE Direction:1;
+ } Bits;
+#endif
+} USBREQUESTTYPE;
+
+#if !defined(MIDL_PASS)
+C_ASSERT((sizeof(USBREQUESTTYPE) == sizeof(BYTE)));
+#endif
+
+typedef struct _USBSETUPREQUEST {
+ USBREQUESTTYPE bmRequestType;
+ BYTE bRequest;
+ SHORT sSetupValue;
+ SHORT sSetupIndex;
+ SHORT sSetupLength;
+} USBSETUPREQUEST;
+
+#if !defined(MIDL_PASS)
+
+typedef struct _USBDEVICEDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ USHORT usUSB;
+ BYTE bDeviceClass;
+ BYTE bDeviceSubClass;
+ BYTE bProtocol;
+ BYTE bMaxPacket0;
+ USHORT usVendor;
+ USHORT usProduct;
+ USHORT usDeviceNumber;
+ BYTE bManufacturer;
+ BYTE bProductDesc;
+ BYTE bSerialNumber;
+ BYTE bNumConfigs;
+} USBDEVICEDESC;
+
+typedef struct _USBCONFIGDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ USHORT usTotalLength;
+ BYTE bNumInterfaces;
+ BYTE bConfigValue;
+ BYTE bConfig;
+ BYTE bAttributes;
+ BYTE bMaxPower;
+} USBCONFIGDESC;
+
+
+typedef struct _USBINTERFACEDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bInterfaceNumber;
+ BYTE bAlternateSetting;
+ BYTE bNumEndpoints;
+ BYTE bClass;
+ BYTE bSubClass;
+ BYTE bProtocol;
+ BYTE bDescription;
+} USBINTERFACEDESC;
+
+#define ENDPOINT_DIRECTION_OUT 0
+#define ENDPOINT_DIRECTION_IN 1
+
+typedef union _USBENDPOINTADDRESS {
+ BYTE Byte;
+ struct Bits {
+ BYTE Number:4;
+ BYTE Reserved:3;
+ BYTE Direction:1;
+ } Bits;
+} USBENDPOINTADDRESS;
+
+C_ASSERT((sizeof(USBENDPOINTADDRESS) == sizeof(BYTE)));
+
+#define USB_TRANSFER_TYPE_CONTROL 0
+#define USB_TRANSFER_TYPE_ISOCH 1
+#define USB_TRANSFER_TYPE_BULK 2
+#define USB_TRANSFER_TYPE_INTERRUPT 3
+
+#define USB_SYNC_TYPE_NONE 0
+#define USB_SYNC_TYPE_ASYNC 1
+#define USB_SYNC_TYPE_ADAPTIVE 2
+#define USB_SYNC_TYPE_SYNC 3
+
+#define USB_USAGE_TYPE_DATA 0
+#define USB_USAGE_TYPE_FEEDBACK 1
+#define USB_USAGE_TYPE_IMPLICIT 2
+#define USB_USAGE_TYPE_RESERVED 3
+
+typedef union _USBENDPOINTATTRIBS {
+ BYTE Byte;
+ struct Bits {
+ BYTE TransferType:2;
+ BYTE SyncType:2;
+ BYTE UsageType:2;
+ BYTE Reserved:2;
+ } Bits;
+} USBENDPOINTATTRIBS;
+
+C_ASSERT((sizeof(USBENDPOINTATTRIBS) == sizeof(BYTE)));
+
+typedef union _USBMAXPACKET {
+ WORD Word;
+ struct Bits {
+ WORD Size:11;
+ WORD AdditionalXactions:2;
+ WORD Reserved:3;
+ } Bits;
+} USBMAXPACKET;
+
+C_ASSERT((sizeof(USBMAXPACKET) == sizeof(WORD)));
+
+typedef struct _USBENDPOINTDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ USBENDPOINTADDRESS Address;
+ USBENDPOINTATTRIBS Attributes;
+ USBMAXPACKET MaxPacket;
+ BYTE bInterval;
+} USBENDPOINTDESC;
+
+typedef struct _USBQUALIFIERDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ USHORT usUSB;
+ BYTE bDeviceClass;
+ BYTE bDeviceSubClass;
+ BYTE bProtocol;
+ BYTE bMaxPacket;
+ BYTE bNumConfigs;
+ BYTE bReserved;
+} USBQUALIFIERDESC;
+
+typedef struct _USBSTRINGDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ WCHAR wchData[1];
+} USBSTRINGDESC;
+
+typedef struct _USBSTRINGLANGIDS {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ WORD wLANGIDs[1];
+} USBSTRINGLANGIDS;
+
+typedef struct _USBHIDSTANDARDDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ USHORT bcdHID;
+ BYTE bCountryCode;
+ BYTE bNumDescriptors;
+} USBHIDSTANDARDDESC;
+
+typedef struct _USBHIDOPTIONALDESC {
+ BYTE bClassDescriptorType;
+ USHORT usDescriptorLength;
+} USBHIDOPTIONALDESC;
+
+typedef struct _USBPHYSICALDESCSET0 {
+ BYTE bNumber;
+ BYTE bLength;
+} USBPHYSICALDESCSET0;
+
+typedef union _USBPHYSICALDESCSET {
+ BYTE bPhysicalInfo;
+ struct Bits {
+ BYTE bPreference:5;
+ BYTE bBias:3;
+ } Bits;
+} USBPHYSICALDESCSET;
+
+typedef struct _USBPHYSICALDESCITEM {
+ BYTE bDesignator;
+ union Flags {
+ BYTE bFlags;
+ struct Bits {
+ BYTE bEffort:5;
+ BYTE bQualifier:3;
+ } Bits;
+ } Flags;
+} USBPHYSICALDESCITEM;
+
+typedef union _USBHUBCHARACTERISTICS {
+ WORD wHubCharacteristics;
+ struct Bits {
+ BYTE bLogicalPowerSwitchingMode:2;
+ BYTE fCompoundDevice:1;
+ BYTE bOverCurrentMode:2;
+ BYTE bTTThinkTime:2;
+ BYTE fPortIndicatorSupport:1;
+ BYTE bReserved:8;
+ } Bits;
+} USBHUBCHARACTERISTICS;
+
+#if !defined(MIDL_PASS)
+C_ASSERT((sizeof(USBHUBCHARACTERISTICS) == sizeof(WORD)));
+#endif
+
+typedef struct _USBHUBDESC {
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bNumberOfPorts;
+ USBHUBCHARACTERISTICS Characteristics;
+ BYTE bPwrOn2PwrGood;
+ BYTE bHubContrCurrent;
+ BYTE bDeviceRemovable[32];
+ BYTE bPortPwrCtrlMask[32];
+} USBHUBDESC;
+
+#if !defined(MIDL_PASS)
+C_ASSERT((sizeof(USBHUBDESC) == 71));
+#endif
+
+typedef union _USBHUBPORTSTATUS {
+ WORD wPortStatus;
+ struct Bits {
+ BYTE fCurrentConnectionStatus:1;
+ BYTE fEnabled:1;
+ BYTE fSuspend:1;
+ BYTE fOverCurrent:1;
+ BYTE fReset:1;
+ BYTE bReserved1:3;
+ BYTE fPortPower:1;
+ BYTE fLowSpeedDevice:1;
+ BYTE fHighSpeedDevice:1;
+ BYTE fTestMode:1;
+ BYTE fPortIndicatorControl:1;
+ BYTE bReserved2:3;
+ } Bits;
+} USBHUBPORTSTATUS;
+
+#if !defined(MIDL_PASS)
+C_ASSERT((sizeof(USBHUBPORTSTATUS) == sizeof(WORD)));
+#endif
+
+typedef union _USBHUBPORTSTATUSCHANGE {
+ WORD wPortStatusChange;
+ struct Bits {
+ BYTE fConnectionStatusChange:1;
+ BYTE fEnabledChange:1;
+ BYTE fSuspendChange:1;
+ BYTE fOverCurrentChange:1;
+ BYTE fResetChange:1;
+ BYTE bReserved1:3;
+ BYTE bReserved2:8;
+ } Bits;
+} USBHUBPORTSTATUSCHANGE;
+
+#if !defined(MIDL_PASS)
+C_ASSERT((sizeof(USBHUBPORTSTATUSCHANGE) == sizeof(WORD)));
+#endif
+
+typedef struct _USBHUBPORTDATA {
+ USBHUBPORTSTATUS PortStatus;
+ USBHUBPORTSTATUSCHANGE PortStatusChange;
+} USBHUBPORTDATA;
+
+#define USB_MAKE_LANGID(lang, sublang) ((((USHORT)(sublang)) << 10) |
(USHORT)(lang))
+
+#define USB_LANG_RESERVED 0x00
+#define USB_LANG_ARABIC 0x01
+#define USB_LANG_BULGARIAN 0x02
+#define USB_LANG_CATALAN 0x03
+#define USB_LANG_CHINESE 0x04
+#define USB_LANG_CZECH 0x05
+#define USB_LANG_DANISH 0x06
+#define USB_LANG_GERMAN 0x07
+#define USB_LANG_GREEK 0x08
+#define USB_LANG_ENGLISH 0x09
+#define USB_LANG_SPANISH 0x0a
+#define USB_LANG_FINNISH 0x0b
+#define USB_LANG_FRENCH 0x0c
+#define USB_LANG_HEBREW 0x0d
+#define USB_LANG_HUNGARIAN 0x0e
+#define USB_LANG_ICELANDIC 0x0f
+#define USB_LANG_ITALIAN 0x10
+#define USB_LANG_JAPANESE 0x11
+#define USB_LANG_KOREAN 0x12
+#define USB_LANG_DUTCH 0x13
+#define USB_LANG_NORWEGIAN 0x14
+#define USB_LANG_POLISH 0x15
+#define USB_LANG_PORTUGUESE 0x16
+#define USB_LANG_ROMANIAN 0x18
+#define USB_LANG_RUSSIAN 0x19
+#define USB_LANG_CROATIAN 0x1a
+#define USB_LANG_SERBIAN 0x1a
+#define USB_LANG_SLOVAK 0x1b
+#define USB_LANG_ALBANIAN 0x1c
+#define USB_LANG_SWEDISH 0x1d
+#define USB_LANG_THAI 0x1e
+#define USB_LANG_TURKISH 0x1f
+#define USB_LANG_URDU 0x20
+#define USB_LANG_INDONESIAN 0x21
+#define USB_LANG_UKRANIAN 0x22
+#define USB_LANG_BELARUSIAN 0x23
+#define USB_LANG_SLOVENIAN 0x24
+#define USB_LANG_ESTONIAN 0x25
+#define USB_LANG_LATVIAN 0x26
+#define USB_LANG_LITHUANIAN 0x27
+#define USB_LANG_FARSI 0x29
+#define USB_LANG_VIETNAMESE 0x2a
+#define USB_LANG_ARMENIAN 0x2b
+#define USB_LANG_AZERI 0x2c
+#define USB_LANG_BASQUE 0x2d
+#define USB_LANG_MACEDONIAN 0x2f
+#define USB_LANG_AFRIKAANS 0x36
+#define USB_LANG_GEORGIAN 0x37
+#define USB_LANG_FAEROESE 0x38
+#define USB_LANG_HINDI 0x39
+#define USB_LANG_MALAY 0x3e
+#define USB_LANG_KAZAK 0x3f
+#define USB_LANG_SWAHILI 0x41
+#define USB_LANG_UZBEK 0x43
+#define USB_LANG_TATAR 0x44
+#define USB_LANG_BENGALI 0x45
+#define USB_LANG_PUNJABI 0x46
+#define USB_LANG_GUJARATI 0x47
+#define USB_LANG_ORIYA 0x48
+#define USB_LANG_TAMIL 0x49
+#define USB_LANG_TELUGU 0x4a
+#define USB_LANG_KANNADA 0x4b
+#define USB_LANG_MALAYALAM 0x4c
+#define USB_LANG_ASSAMESE 0x4d
+#define USB_LANG_MARATHI 0x4e
+#define USB_LANG_SANSKRIT 0x4f
+#define USB_LANG_KONKANI 0x57
+#define USB_LANG_MANIPURI 0x58
+#define USB_LANG_SINDHI 0x59
+#define USB_LANG_KASHMIRI 0x60
+#define USB_LANG_NEPALI 0x61
+#define USB_LANG_HID 0xff
+
+#define USB_SUBLANG_ARABIC_SAUDI_ARABIA 0x01
+#define USB_SUBLANG_ARABIC_SAUDI_ARABIA 0x01
+#define USB_SUBLANG_ARABIC_IRAQ 0x02
+#define USB_SUBLANG_ARABIC_EGYPT 0x03
+#define USB_SUBLANG_ARABIC_LIBYA 0x04
+#define USB_SUBLANG_ARABIC_ALGERIA 0x05
+#define USB_SUBLANG_ARABIC_MOROCCO 0x06
+#define USB_SUBLANG_ARABIC_TUNISIA 0x07
+#define USB_SUBLANG_ARABIC_OMAN 0x08
+#define USB_SUBLANG_ARABIC_YEMEN 0x09
+#define USB_SUBLANG_ARABIC_SYRIA 0x10
+#define USB_SUBLANG_ARABIC_JORDAN 0x11
+#define USB_SUBLANG_ARABIC_LEBANON 0x12
+#define USB_SUBLANG_ARABIC_KUWAIT 0x13
+#define USB_SUBLANG_ARABIC_UAE 0x14
+#define USB_SUBLANG_ARABIC_BAHRAIN 0x15
+#define USB_SUBLANG_ARABIC_QATAR 0x16
+#define USB_SUBLANG_AZERI_CYRILLIC 0x01
+#define USB_SUBLANG_AZERI_LATIN 0x02
+#define USB_SUBLANG_CHINESE_TRADITIONAL 0x01
+#define USB_SUBLANG_CHINESE_SIMPLIFIED 0x02
+#define USB_SUBLANG_CHINESE_HONGKONG 0x03
+#define USB_SUBLANG_CHINESE_SINGAPORE 0x04
+#define USB_SUBLANG_CHINESE_MACAU 0x05
+#define USB_SUBLANG_DUTCH 0x01
+#define USB_SUBLANG_DUTCH_BELGIAN 0x02
+#define USB_SUBLANG_ENGLISH_US 0x01
+#define USB_SUBLANG_ENGLISH_UK 0x02
+#define USB_SUBLANG_ENGLISH_AUS 0x03
+#define USB_SUBLANG_ENGLISH_CAN 0x04
+#define USB_SUBLANG_ENGLISH_NZ 0x05
+#define USB_SUBLANG_ENGLISH_EIRE 0x06
+#define USB_SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
+#define USB_SUBLANG_ENGLISH_JAMAICA 0x08
+#define USB_SUBLANG_ENGLISH_CARIBBEAN 0x09
+#define USB_SUBLANG_ENGLISH_BELIZE 0x0a
+#define USB_SUBLANG_ENGLISH_TRINIDAD 0x0b
+#define USB_SUBLANG_ENGLISH_PHILIPPINES 0x0c
+#define USB_SUBLANG_ENGLISH_ZIMBABWE 0x0d
+#define USB_SUBLANG_FRENCH 0x01
+#define USB_SUBLANG_FRENCH_BELGIAN 0x02
+#define USB_SUBLANG_FRENCH_CANADIAN 0x03
+#define USB_SUBLANG_FRENCH_SWISS 0x04
+#define USB_SUBLANG_FRENCH_LUXEMBOURG 0x05
+#define USB_SUBLANG_FRENCH_MONACO 0x06
+#define USB_SUBLANG_GERMAN 0x01
+#define USB_SUBLANG_GERMAN_SWISS 0x02
+#define USB_SUBLANG_GERMAN_AUSTRIAN 0x03
+#define USB_SUBLANG_GERMAN_LUXEMBOURG 0x04
+#define USB_SUBLANG_GERMAN_LIECHTENSTEIN 0x05
+#define USB_SUBLANG_ITALIAN 0x01
+#define USB_SUBLANG_ITALIAN_SWISS 0x02
+#define USB_SUBLANG_KASHMIRI_INDIA 0x02
+#define USB_SUBLANG_KOREAN 0x01
+#define USB_SUBLANG_LITHUANIAN 0x01
+#define USB_SUBLANG_MALAY_MALAYSIA 0x01
+#define USB_SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
+#define USB_SUBLANG_NEPALI_INDIA 0x02
+#define USB_SUBLANG_NORWEGIAN_BOKMAL 0x01
+#define USB_SUBLANG_NORWEGIAN_NYNORSK 0x02
+#define USB_SUBLANG_PORTUGUESE 0x01
+#define USB_SUBLANG_PORTUGUESE_BRAZILIAN 0x02
+#define USB_SUBLANG_SERBIAN_LATIN 0x02
+#define USB_SUBLANG_SERBIAN_CYRILLIC 0x03
+#define USB_SUBLANG_SPANISH 0x01
+#define USB_SUBLANG_SPANISH_MEXICAN 0x02
+#define USB_SUBLANG_SPANISH_MODERN 0x03
+#define USB_SUBLANG_SPANISH_GUATEMALA 0x04
+#define USB_SUBLANG_SPANISH_COSTA_RICA 0x05
+#define USB_SUBLANG_SPANISH_PANAMA 0x06
+#define USB_SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
+#define USB_SUBLANG_SPANISH_VENEZUELA 0x08
+#define USB_SUBLANG_SPANISH_COLOMBIA 0x09
+#define USB_SUBLANG_SPANISH_PERU 0x0a
+#define USB_SUBLANG_SPANISH_ARGENTINA 0x0b
+#define USB_SUBLANG_SPANISH_ECUADOR 0x0c
+#define USB_SUBLANG_SPANISH_CHILE 0x0d
+#define USB_SUBLANG_SPANISH_URUGUAY 0x0e
+#define USB_SUBLANG_SPANISH_PARAGUAY 0x0f
+#define USB_SUBLANG_SPANISH_BOLIVIA 0x10
+#define USB_SUBLANG_SPANISH_EL_SALVADOR 0x11
+#define USB_SUBLANG_SPANISH_HONDURAS 0x12
+#define USB_SUBLANG_SPANISH_NICARAGUA 0x13
+#define USB_SUBLANG_SPANISH_PUERTO_RICO 0x14
+#define USB_SUBLANG_SWEDISH 0x01
+#define USB_SUBLANG_SWEDISH_FINLAND 0x02
+#define USB_SUBLANG_URDU_PAKISTAN 0x01
+#define USB_SUBLANG_URDU_INDIA 0x02
+#define USB_SUBLANG_UZBEK_LATIN 0x01
+#define USB_SUBLANG_UZBEK_CYRILLIC 0x02
+#define USB_SUBLANG_HID_USAGE_DATA_DESCRIPTOR 0x01
+#define USB_SUBLANG_HID_VENDOR_DEFINED_1 0x3c
+#define USB_SUBLANG_HID_VENDOR_DEFINED_2 0x3d
+#define USB_SUBLANG_HID_VENDOR_DEFINED_3 0x3e
+#define USB_SUBLANG_HID_VENDOR_DEFINED_4 0x3f
+
+#endif // !defined(MIDL_PASS)
+
+#include <POPPACK.h>
Propchange: branches/header-work/include/ddk/usbprotocoldefs.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: branches/header-work/include/ddk/usbscan.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbscan…
==============================================================================
--- branches/header-work/include/ddk/usbscan.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/usbscan.h [iso-8859-1] Thu Mar 4 23:58:41 2010
@@ -20,21 +20,33 @@
*
*/
-#ifndef __USBSCAN_H
-#define __USBSCAN_H
+#pragma once
#ifdef __cplusplus
extern "C" {
#endif
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+#pragma pack(push,8)
+
#define FILE_DEVICE_USB_SCAN 0x8000
#define IOCTL_INDEX 0x0800
+
+#define IOCTL_GET_VERSION \
+ CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 0, METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_CANCEL_IO \
CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 1, METHOD_BUFFERED,FILE_ANY_ACCESS)
-#define IOCTL_GET_VERSION \
- CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 0, METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_WAIT_ON_DEVICE_EVENT \
+ CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 2, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_READ_REGISTERS \
+ CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 3, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_WRITE_REGISTERS \
+ CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_GET_CHANNEL_ALIGN_RQST \
CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 5, METHOD_BUFFERED,FILE_ANY_ACCESS)
@@ -42,32 +54,26 @@
#define IOCTL_GET_DEVICE_DESCRIPTOR \
CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 6, METHOD_BUFFERED,FILE_ANY_ACCESS)
-#define IOCTL_GET_PIPE_CONFIGURATION \
- CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 10,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_RESET_PIPE \
+ CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 7, METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_GET_USB_DESCRIPTOR \
CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 8, METHOD_BUFFERED,FILE_ANY_ACCESS)
-#define IOCTL_READ_REGISTERS \
- CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 3, METHOD_BUFFERED,FILE_ANY_ACCESS)
-
-#define IOCTL_RESET_PIPE \
- CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 7, METHOD_BUFFERED,FILE_ANY_ACCESS)
-
#define IOCTL_SEND_USB_REQUEST \
CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 9, METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_GET_PIPE_CONFIGURATION \
+ CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 10,METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
#define IOCTL_SET_TIMEOUT \
CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 11,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#endif
-#define IOCTL_WAIT_ON_DEVICE_EVENT \
- CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 2, METHOD_BUFFERED,FILE_ANY_ACCESS)
-
-#define IOCTL_WRITE_REGISTERS \
- CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-
+#ifndef MAX_NUM_PIPES
#define MAX_NUM_PIPES 8
+#endif
#define BULKIN_FLAG 0x80
@@ -114,10 +120,10 @@
} USBSCAN_GET_DESCRIPTOR, *PUSBSCAN_GET_DESCRIPTOR;
typedef enum _RAW_PIPE_TYPE {
- USBSCAN_PIPE_CONTROL,
- USBSCAN_PIPE_ISOCHRONOUS,
- USBSCAN_PIPE_BULK,
- USBSCAN_PIPE_INTERRUPT
+ USBSCAN_PIPE_CONTROL,
+ USBSCAN_PIPE_ISOCHRONOUS,
+ USBSCAN_PIPE_BULK,
+ USBSCAN_PIPE_INTERRUPT
} RAW_PIPE_TYPE;
typedef struct _USBSCAN_PIPE_INFORMATION {
@@ -132,21 +138,25 @@
OUT USBSCAN_PIPE_INFORMATION PipeInfo[MAX_NUM_PIPES];
} USBSCAN_PIPE_CONFIGURATION, *PUSBSCAN_PIPE_CONFIGURATION;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
typedef struct _USBSCAN_TIMEOUT {
IN ULONG TimeoutRead;
IN ULONG TimeoutWrite;
IN ULONG TimeoutEvent;
} USBSCAN_TIMEOUT, *PUSBSCAN_TIMEOUT;
+#endif
typedef enum _PIPE_TYPE {
- EVENT_PIPE,
- READ_DATA_PIPE,
- WRITE_DATA_PIPE,
- ALL_PIPE
+ EVENT_PIPE,
+ READ_DATA_PIPE,
+ WRITE_DATA_PIPE,
+ ALL_PIPE
} PIPE_TYPE;
+
+#pragma pack(pop)
+
+#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
#ifdef __cplusplus
}
#endif
-
-#endif /* __USBSCAN_H */
Added: branches/header-work/include/ddk/usbstorioctl.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbstor…
==============================================================================
--- branches/header-work/include/ddk/usbstorioctl.h (added)
+++ branches/header-work/include/ddk/usbstorioctl.h [iso-8859-1] Thu Mar 4 23:58:41 2010
@@ -1,0 +1,64 @@
+#pragma once
+
+#ifndef MAX_PATH
+#define MAX_PATH 260
+#endif
+
+#define SIZE_ENUM_PDO_RESULTS_HEADER (sizeof(ENUM_PDO_RESULTS) - sizeof(ENUM_PDO_ENTRY))
+
+#define IOCTL_EHSTOR_DEVICE_SET_AUTHZ_STATE CTL_CODE(IOCTL_STORAGE_BASE, 0x501,
METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_EHSTOR_DEVICE_GET_AUTHZ_STATE CTL_CODE(IOCTL_STORAGE_BASE, 0x502,
METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_EHSTOR_DEVICE_SILO_COMMAND CTL_CODE(IOCTL_STORAGE_BASE, 0x503,
METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_EHSTOR_DEVICE_ENUMERATE_PDOS CTL_CODE(IOCTL_STORAGE_BASE, 0x504,
METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+DEFINE_GUID(GUID_USBSTOR_EHSTOR_SILO_INTERFACE, 0x7c2bcf57, 0x2bea, 0x46da, 0xad, 0x26,
0x78, 0xfd, 0xc8, 0x3c, 0xee, 0x46);
+DEFINE_GUID(GUID_USBSTOR_EHSTOR_CONTROL_INTERFACE, 0x4f40006f, 0xb933, 0x4550, 0xb5,
0x32, 0x2b, 0x58, 0xce, 0xe6, 0x14, 0xd3);
+
+typedef struct tagACT_AUTHZ_STATE {
+ UCHAR ACT;
+ BOOLEAN fAuthorized;
+} ACT_AUTHZ_STATE, *PACT_AUTHZ_STATE;
+
+typedef struct tagSILO_COMMAND {
+ UCHAR SiloIndex;
+ UCHAR Command;
+ ULONG cbCommandBuffer;
+ UCHAR rgbCommandBuffer[ANYSIZE_ARRAY];
+} SILO_COMMAND, *PSILO_COMMAND;
+
+typedef enum _PDO_TYPE {
+ PDO_TYPE_UNDEFINED = 0,
+ PDO_TYPE_DISK,
+ PDO_TYPE_CONTROL,
+ PDO_TYPE_SILO,
+ PDO_TYPE_THIS = 256
+} PDO_TYPE;
+
+typedef enum _PDO_STATE {
+ PDO_STATE_UNDEFINED = 0,
+ PDO_STATE_STARTED,
+ PDO_STATE_NOT_STARTED
+} PDO_STATE;
+
+typedef enum _PDO_CAPS {
+ PDO_CAPABILITY_UNDEFINED = 0,
+ PDO_CAPABILITY_INC512_SET = 1,
+ PDO_CAPABILITY_INC512_CLEAR = 2
+} PDO_CAPS;
+
+typedef struct _ENUM_PDO_ENTRY {
+ UCHAR type;
+ UCHAR state;
+ UCHAR capabilities;
+ ULONG ulSTID;
+ UCHAR bSpecificationMajor;
+ UCHAR bSpecificationMinor;
+ UCHAR bImplementationMajor;
+ UCHAR bImplementationMinor;
+ WCHAR wszDeviceInstancePath[(2 * MAX_PATH) + 1];
+} ENUM_PDO_ENTRY, *PENUM_PDO_ENTRY;
+
+typedef struct _ENUM_PDO_RESULTS {
+ ULONG cEntries;
+ ENUM_PDO_ENTRY rgEntries[ANYSIZE_ARRAY];
+} ENUM_PDO_RESULTS, *PENUM_PDO_RESULTS;
Propchange: branches/header-work/include/ddk/usbstorioctl.h
------------------------------------------------------------------------------
svn:eol-style = native