7 #define USB_STOR_TAG 'sbsu'
8 #define USB_MAXCHILDREN (16)
11 IoAttachDeviceToDeviceStackSafe(
12 IN PDEVICE_OBJECT SourceDevice
,
13 IN PDEVICE_OBJECT TargetDevice
,
14 OUT PDEVICE_OBJECT
*AttachedToDeviceObject
);
16 typedef struct _USBSTOR_DEVICE_EXTENSION
19 struct usb_device
* dev
;
20 PDEVICE_OBJECT LowerDevice
;
22 PDEVICE_OBJECT Children
[USB_MAXCHILDREN
];
24 /* Fields valid only when IsFDO == FALSE */
25 UNICODE_STRING DeviceDescription
; // REG_SZ
26 UNICODE_STRING DeviceId
; // REG_SZ
27 UNICODE_STRING InstanceId
; // REG_SZ
28 UNICODE_STRING HardwareIds
; // REG_MULTI_SZ
29 UNICODE_STRING CompatibleIds
; // REG_MULTI_SZ
30 UNICODE_STRING SymbolicLinkName
;
31 } USBSTOR_DEVICE_EXTENSION
, *PUSBSTOR_DEVICE_EXTENSION
;
37 IN PDEVICE_OBJECT DeviceObject
,
43 IN PDEVICE_OBJECT DeviceObject
,
47 UsbStorDeviceControlFdo(
48 IN PDEVICE_OBJECT DeviceObject
,
54 IN PDEVICE_OBJECT DeviceObject
,
59 IN PDEVICE_OBJECT DeviceObject
,
63 UsbStorDuplicateUnicodeString(
64 OUT PUNICODE_STRING Destination
,
65 IN PUNICODE_STRING Source
,
66 IN POOL_TYPE PoolType
);
69 UsbStorInitMultiSzString(
70 OUT PUNICODE_STRING Destination
,
71 ... /* list of PCSZ */);
76 IN PDEVICE_OBJECT DeviceObject
,
80 UsbStorDeviceControlPdo(
81 IN PDEVICE_OBJECT DeviceObject
,