19 // #include <usbprotocoldefs.h>
27 // the following includes are required to get kcom to compile
33 #include "interfaces.h"
36 // flags for handling USB_REQUEST_SET_FEATURE / USB_REQUEST_GET_FEATURE
39 #define PORT_SUSPEND 2
40 #define PORT_OVER_CURRENT 3
43 #define C_PORT_CONNECTION 16
44 #define C_PORT_ENABLE 17
45 #define C_PORT_SUSPEND 18
46 #define C_PORT_OVER_CURRENT 19
47 #define C_PORT_RESET 20
51 BOOLEAN IsFDO
; // is device a FDO or PDO
52 BOOLEAN IsHub
; // is device a hub / child - not yet used
53 PDISPATCHIRP Dispatcher
; // dispatches the code
54 }COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
57 // tag for allocations
59 #define TAG_USBOHCI 'ICHO'
62 // assert for c++ - taken from portcls
64 #define PC_ASSERT(exp) \
66 RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
71 NTSTATUS
CreateHCDController(PHCDCONTROLLER
*HcdController
);
76 NTSTATUS
CreateUSBHardware(PUSBHARDWAREDEVICE
*OutHardware
);
81 NTSTATUS NTAPI
SyncForwardIrp(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
82 NTSTATUS NTAPI
GetBusInterface(PDEVICE_OBJECT DeviceObject
, PBUS_INTERFACE_STANDARD busInterface
);
85 // root_hub_controller.cpp
87 NTSTATUS
CreateHubController(PHUBCONTROLLER
* OutHubController
);
92 NTSTATUS
CreateDMAMemoryManager(PDMAMEMORYMANAGER
*OutMemoryManager
);
98 NTSTATUS
CreateUSBDevice(PUSBDEVICE
*OutDevice
);
103 NTSTATUS
CreateUSBQueue(PUSBQUEUE
*OutUsbQueue
);
108 NTSTATUS
InternalCreateUSBRequest(PUSBREQUEST
*OutRequest
);