12 // #include <usbprotocoldefs.h>
20 // the following includes are required to get kcom to compile
26 #include "interfaces.h"
29 // flags for handling USB_REQUEST_SET_FEATURE / USB_REQUEST_GET_FEATURE
32 #define PORT_SUSPEND 2
33 #define PORT_OVER_CURRENT 3
36 #define C_PORT_CONNECTION 16
37 #define C_PORT_ENABLE 17
38 #define C_PORT_SUSPEND 18
39 #define C_PORT_OVER_CURRENT 19
40 #define C_PORT_RESET 20
44 BOOLEAN IsFDO
; // is device a FDO or PDO
45 BOOLEAN IsHub
; // is device a hub / child - not yet used
46 PDISPATCHIRP Dispatcher
; // dispatches the code
47 }COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
50 // tag for allocations
52 #define TAG_USBEHCI 'ICHE'
55 // assert for c++ - taken from portcls
57 #define PC_ASSERT(exp) \
59 RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
64 NTSTATUS
CreateHCDController(PHCDCONTROLLER
*HcdController
);
69 NTSTATUS
CreateUSBHardware(PUSBHARDWAREDEVICE
*OutHardware
);
74 NTSTATUS NTAPI
SyncForwardIrp(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
75 NTSTATUS NTAPI
GetBusInterface(PDEVICE_OBJECT DeviceObject
, PBUS_INTERFACE_STANDARD busInterface
);
78 // root_hub_controller.cpp
80 NTSTATUS
CreateHubController(PHUBCONTROLLER
* OutHubController
);
85 NTSTATUS
CreateDMAMemoryManager(PDMAMEMORYMANAGER
*OutMemoryManager
);
91 NTSTATUS
CreateUSBDevice(PUSBDEVICE
*OutDevice
);
96 NTSTATUS
CreateUSBQueue(PUSBQUEUE
*OutUsbQueue
);
101 NTSTATUS
InternalCreateUSBRequest(PUSBREQUEST
*OutRequest
);