150{
155
156
158 {
160 }
161
164 {
165 DPRINT1(
"USBSTOR_FdoHandleStartDevice Lower device failed to start %x\n",
Status);
167 }
168
169 if (!DeviceExtension->ResetDeviceWorkItem)
170 {
172 DeviceExtension->ResetDeviceWorkItem =
WorkItem;
173
175 {
177 }
178 }
179
180
182
183
186 {
187 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to get device descriptor with %x\n",
Status);
189 }
190
191#if DBG
193#endif
194
195
196
200
203 {
204 DPRINT1(
"USB Device is not a bulk only device and is not currently supported\n");
206 }
207
209 {
210 DPRINT1(
"USB Floppy devices are not supported\n");
212 }
213
214
217 {
218
219 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to select configuration / interface with %x\n",
Status);
221 }
222
223
226 {
227 DPRINT1(
"USBSTOR_FdoHandleStartDevice no pipe handles %x\n",
Status);
229 }
230
233 {
234 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to get max lun %x\n",
Status);
236 }
237
238
239 do
240 {
242
244 {
245 DPRINT1(
"USBSTOR_FdoHandleStartDevice USBSTOR_CreatePDO failed for Index %lu with Status %x\n",
Index,
Status);
247 }
248
250 DeviceExtension->InstanceCount++;
251
252 } while(Index < DeviceExtension->MaxLUN);
253
254#if 0
255
256
257
260 {
261
262
263
264 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to get device interface %x\n",
Status);
266 }
267#endif
268
269
270
271 DPRINT(
"USBSTOR_FdoHandleStartDevice FDO is initialized\n");
273}
#define STATUS_NOT_SUPPORTED
#define NT_SUCCESS(StatCode)
static const struct @259 InterfaceDesc[]
NTSTATUS USBSTOR_GetDescriptors(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS USBSTOR_GetPipeHandles(IN PFDO_DEVICE_EXTENSION DeviceExtension)
NTSTATUS USBSTOR_SelectConfigurationAndInterface(IN PDEVICE_OBJECT DeviceObject, IN PFDO_DEVICE_EXTENSION DeviceExtension)
NTSTATUS USBSTOR_GetMaxLUN(IN PDEVICE_OBJECT DeviceObject, IN PFDO_DEVICE_EXTENSION DeviceExtension)
NTSTATUS NTAPI USBSTOR_GetBusInterface(IN PDEVICE_OBJECT DeviceObject, OUT PUSB_BUS_INTERFACE_USBDI_V2 BusInterface)
VOID USBSTOR_QueueInitialize(PFDO_DEVICE_EXTENSION FDODeviceExtension)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
BOOLEAN NTAPI IoForwardIrpSynchronously(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
struct _USB_CONFIGURATION_DESCRIPTOR USB_CONFIGURATION_DESCRIPTOR
struct _USB_INTERFACE_DESCRIPTOR * PUSB_INTERFACE_DESCRIPTOR
#define USB_INTERFACE_DESCRIPTOR_TYPE
NTSTATUS USBSTOR_CreatePDO(IN PDEVICE_OBJECT DeviceObject, IN UCHAR LUN)
VOID USBSTOR_DumpDeviceDescriptor(PUSB_DEVICE_DESCRIPTOR DeviceDescriptor)
#define USB_PROTOCOL_BULK
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem