15 // #include <usbprotocoldefs.h>
22 // the following includes are required to get kcom to compile
27 #include "common_interfaces.h"
30 // flags for handling USB_REQUEST_SET_FEATURE / USB_REQUEST_GET_FEATURE
33 #define PORT_SUSPEND 2
34 #define PORT_OVER_CURRENT 3
37 #define C_PORT_CONNECTION 16
38 #define C_PORT_ENABLE 17
39 #define C_PORT_SUSPEND 18
40 #define C_PORT_OVER_CURRENT 19
41 #define C_PORT_RESET 20
45 BOOLEAN IsFDO
; // is device a FDO or PDO
46 BOOLEAN IsHub
; // is device a hub / child - not yet used
47 PDISPATCHIRP Dispatcher
; // dispatches the code
48 }COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
51 typedef struct _WORK_ITEM_DATA
53 WORK_QUEUE_ITEM WorkItem
; // work item
54 PVOID CallbackContext
; // callback context
55 PRH_INIT_CALLBACK CallbackRoutine
; // callback routine
56 } INIT_ROOT_HUB_CONTEXT
, *PINIT_ROOT_HUB_CONTEXT
;
59 // tag for allocations
61 #define TAG_USBLIB 'LBSU'
64 // assert for c++ - taken from portcls
66 #define PC_ASSERT(exp) \
68 RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
73 NTSTATUS NTAPI
CreateHCDController(PHCDCONTROLLER
*HcdController
);
76 NTSTATUS NTAPI
CreateUSBHardware(PUSBHARDWAREDEVICE
*OutHardware
);
79 NTSTATUS NTAPI
SyncForwardIrp(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
80 NTSTATUS NTAPI
GetBusInterface(PDEVICE_OBJECT DeviceObject
, PBUS_INTERFACE_STANDARD busInterface
);
82 // root_hub_controller.cpp
83 NTSTATUS NTAPI
CreateHubController(PHUBCONTROLLER
* OutHubController
);
86 NTSTATUS NTAPI
CreateDMAMemoryManager(PDMAMEMORYMANAGER
*OutMemoryManager
);
89 NTSTATUS NTAPI
CreateUSBDevice(PUSBDEVICE
*OutDevice
);
92 NTSTATUS NTAPI
USBLIB_AddDevice(PDRIVER_OBJECT DriverObject
, PDEVICE_OBJECT PhysicalDeviceObject
);
93 NTSTATUS NTAPI
USBLIB_Dispatch(PDEVICE_OBJECT DeviceObject
, PIRP Irp
);
97 #endif /* LIBUSB_H__ */