ReactOS 0.4.16-dev-1025-gd3456f5
usbccgp.h
Go to the documentation of this file.
1#ifndef USBEHCI_H__
2#define USBEHCI_H__
3
4#include <wdm.h>
5#include <hubbusif.h>
6#include <usbbusif.h>
7#include <usb100.h>
8#include <usbdlib.h>
9
10#include <stdio.h>
11
12typedef struct
13{
14 BOOLEAN IsFDO; // is device a FDO or PDO
16
17typedef struct
18{
19 COMMON_DEVICE_EXTENSION Common; // shared with PDO
20 PDRIVER_OBJECT DriverObject; // driver object
21 PDEVICE_OBJECT PhysicalDeviceObject; // physical device object
22 PDEVICE_OBJECT NextDeviceObject; // lower device object
23 PUSB_DEVICE_DESCRIPTOR DeviceDescriptor; // usb device descriptor
25 DEVICE_CAPABILITIES Capabilities; // device capabilities
27 ULONG InterfaceListCount; // interface list count
29 USBC_DEVICE_CONFIGURATION_INTERFACE_V1 BusInterface; // bus custom enumeration interface
31 ULONG FunctionDescriptorCount; // number of function descriptor
32 PDEVICE_OBJECT * ChildPDO; // child pdos
33 LIST_ENTRY ResetPortListHead; // reset port list head
34 LIST_ENTRY CyclePortListHead; // cycle port list head
35 UCHAR ResetPortActive; // reset port active
36 UCHAR CyclePortActive; // cycle port active
37 KSPIN_LOCK Lock; // reset / cycle port list lock
39
40#define USBCCPG_TAG 'cbsu'
41
42typedef struct
43{
44 COMMON_DEVICE_EXTENSION Common; // shared with FDO
46 PDEVICE_OBJECT NextDeviceObject; // next device object
47 DEVICE_CAPABILITIES Capabilities; // device capabilities
48 ULONG FunctionIndex; // function index
49 USB_DEVICE_DESCRIPTOR DeviceDescriptor; // usb device descriptor
53 ULONG InterfaceListCount; // interface list count
54 PFDO_DEVICE_EXTENSION FDODeviceExtension; // pointer to fdo's pdo list
56
57/* descriptor.c */
58
59VOID
61 IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor);
62
66
70 IN PFDO_DEVICE_EXTENSION DeviceExtension);
71
77 IN ULONG DescriptorLength,
78 IN UCHAR DescriptorIndex,
79 IN LANGID LanguageId,
80 OUT PVOID *OutDescriptor);
81
86 IN ULONG DescriptorLength,
87 IN UCHAR DescriptorIndex,
88 IN LANGID LanguageId,
89 OUT PVOID *OutDescriptor);
90
93 IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor);
94
97 IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
99
100/* misc.c */
101
105 OUT PURB UrbRequest);
106
107PVOID
111
112VOID
114 IN PVOID Item);
115
116VOID
118 IN PUSBC_FUNCTION_DESCRIPTOR FunctionDescriptor,
119 IN ULONG FunctionDescriptorCount);
120
121/* fdo.c */
122
126 PIRP Irp);
127
128/* pdo.c */
129
133 PIRP Irp);
134
135/* function.c */
136
141
145
146#endif /* USBEHCI_H__ */
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
USHORT LANGID
Definition: mui.h:9
static UCHAR ItemSize[4]
Definition: parser.c:16
DEVICE_CAPABILITIES Capabilities
Definition: usbccgp.h:25
COMMON_DEVICE_EXTENSION Common
Definition: usbccgp.h:19
ULONG InterfaceListCount
Definition: usbccgp.h:27
UCHAR CyclePortActive
Definition: usbccgp.h:36
UCHAR ResetPortActive
Definition: usbccgp.h:35
PUSBC_FUNCTION_DESCRIPTOR FunctionDescriptor
Definition: usbccgp.h:30
LIST_ENTRY ResetPortListHead
Definition: usbccgp.h:33
PDRIVER_OBJECT DriverObject
Definition: usbccgp.h:20
ULONG FunctionDescriptorCount
Definition: usbccgp.h:31
PUSB_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: usbccgp.h:23
USBD_CONFIGURATION_HANDLE ConfigurationHandle
Definition: usbccgp.h:28
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
Definition: usbccgp.h:24
PDEVICE_OBJECT PhysicalDeviceObject
Definition: usbccgp.h:21
PDEVICE_OBJECT NextDeviceObject
Definition: usbccgp.h:22
USBC_DEVICE_CONFIGURATION_INTERFACE_V1 BusInterface
Definition: usbccgp.h:29
PUSBD_INTERFACE_LIST_ENTRY InterfaceList
Definition: usbccgp.h:26
PDEVICE_OBJECT * ChildPDO
Definition: usbccgp.h:32
LIST_ENTRY CyclePortListHead
Definition: usbccgp.h:34
KSPIN_LOCK Lock
Definition: usbccgp.h:37
PUSBC_FUNCTION_DESCRIPTOR FunctionDescriptor
Definition: usbccgp.h:45
ULONG InterfaceListCount
Definition: usbccgp.h:53
USB_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: usbccgp.h:49
DEVICE_CAPABILITIES Capabilities
Definition: usbccgp.h:47
PFDO_DEVICE_EXTENSION FDODeviceExtension
Definition: usbccgp.h:54
PUSBD_INTERFACE_LIST_ENTRY InterfaceList
Definition: usbccgp.h:52
PDEVICE_OBJECT NextDeviceObject
Definition: usbccgp.h:46
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
Definition: usbccgp.h:50
COMMON_DEVICE_EXTENSION Common
Definition: usbccgp.h:44
USBD_CONFIGURATION_HANDLE ConfigurationHandle
Definition: usbccgp.h:51
Definition: typedefs.h:120
Definition: usb.h:529
Definition: usbdlib.h:7
INT POOL_TYPE
Definition: typedefs.h:78
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
struct PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
NTSTATUS USBCCGP_SelectConfiguration(IN PDEVICE_OBJECT DeviceObject, IN PFDO_DEVICE_EXTENSION DeviceExtension)
Definition: descriptor.c:467
NTSTATUS NTAPI USBCCGP_GetStringDescriptor(IN PDEVICE_OBJECT DeviceObject, IN ULONG DescriptorLength, IN UCHAR DescriptorIndex, IN LANGID LanguageId, OUT PVOID *OutDescriptor)
Definition: descriptor.c:102
NTSTATUS FDO_Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: fdo.c:640
NTSTATUS USBCCGP_EnumerateFunctions(IN PDEVICE_OBJECT DeviceObject)
Definition: function.c:870
struct FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
NTSTATUS USBCCGP_SyncUrbRequest(IN PDEVICE_OBJECT DeviceObject, OUT PURB UrbRequest)
Definition: misc.c:35
NTSTATUS NTAPI USBCCGP_GetDescriptor(IN PDEVICE_OBJECT DeviceObject, IN UCHAR DescriptorType, IN ULONG DescriptorLength, IN UCHAR DescriptorIndex, IN LANGID LanguageId, OUT PVOID *OutDescriptor)
Definition: descriptor.c:19
VOID DumpConfigurationDescriptor(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor)
NTSTATUS AllocateInterfaceDescriptorsArray(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, OUT PUSB_INTERFACE_DESCRIPTOR **OutArray)
Definition: descriptor.c:227
NTSTATUS PDO_Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: pdo.c:1126
PVOID AllocateItem(IN POOL_TYPE PoolType, IN ULONG ItemSize)
Definition: misc.c:29
VOID DumpFunctionDescriptor(IN PUSBC_FUNCTION_DESCRIPTOR FunctionDescriptor, IN ULONG FunctionDescriptorCount)
Definition: misc.c:111
NTSTATUS USBCCGP_GetDescriptors(IN PDEVICE_OBJECT DeviceObject)
Definition: descriptor.c:160
struct COMMON_DEVICE_EXTENSION * PCOMMON_DEVICE_EXTENSION
VOID FreeItem(IN PVOID Item)
Definition: misc.c:37
NTSTATUS USBCCGP_QueryInterface(IN PDEVICE_OBJECT DeviceObject, OUT PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1 BusInterface)
Definition: function.c:18
ULONG CountInterfaceDescriptors(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor)
_In_ ULONG _In_ PVOID _In_ LONG DescriptorType
Definition: usbdlib.h:160
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
DEVICE_CAPABILITIES
Definition: iotypes.h:965
unsigned char UCHAR
Definition: xmlstorage.h:181