6 #include "../miniport/usb_wrapper.h"
7 #include "../usbport/hub.h"
9 #define USB_HUB_TAG 'hbsu'
11 typedef struct _HUB_DEVICE_EXTENSION
14 struct usb_device
* dev
;
15 PDEVICE_OBJECT LowerDevice
;
17 PDEVICE_OBJECT Children
[USB_MAXCHILDREN
];
19 /* Fields valid only when IsFDO == FALSE */
20 UNICODE_STRING DeviceId
; // REG_SZ
21 UNICODE_STRING InstanceId
; // REG_SZ
22 UNICODE_STRING HardwareIds
; // REG_MULTI_SZ
23 UNICODE_STRING CompatibleIds
; // REG_MULTI_SZ
24 UNICODE_STRING SymbolicLinkName
;
25 } HUB_DEVICE_EXTENSION
, *PHUB_DEVICE_EXTENSION
;
30 IN PDEVICE_OBJECT DeviceObject
,
35 IN PDEVICE_OBJECT DeviceObject
,
40 IN PDEVICE_OBJECT DeviceObject
,
46 IN PDEVICE_OBJECT DeviceObject
,
50 UsbhubDeviceControlFdo(
51 IN PDEVICE_OBJECT DeviceObject
,
57 IN PDEVICE_OBJECT DeviceObject
,
62 IN PDEVICE_OBJECT DeviceObject
,
66 UsbhubDuplicateUnicodeString(
67 OUT PUNICODE_STRING Destination
,
68 IN PUNICODE_STRING Source
,
69 IN POOL_TYPE PoolType
);
72 UsbhubInitMultiSzString(
73 OUT PUNICODE_STRING Destination
,
74 ... /* list of PCSZ */);
79 IN PDEVICE_OBJECT DeviceObject
,
83 UsbhubInternalDeviceControlPdo(
84 IN PDEVICE_OBJECT DeviceObject
,