156{
161
162
164 {
166 }
167
170 {
171 DPRINT1(
"USBSTOR_FdoHandleStartDevice Lower device failed to start %x\n",
Status);
173 }
174
175 if (!DeviceExtension->ResetDeviceWorkItem)
176 {
178 DeviceExtension->ResetDeviceWorkItem =
WorkItem;
179
181 {
183 }
184 }
185
186
188
189
192 {
193 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to get device descriptor with %x\n",
Status);
195 }
196
197#if DBG
199#endif
200
201
202
206
209 {
210 DPRINT1(
"USB Device is not a bulk only device and is not currently supported\n");
212 }
213
215 {
216 DPRINT1(
"USB Floppy devices are not supported\n");
218 }
219
220
223 {
224
225 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to select configuration / interface with %x\n",
Status);
227 }
228
229
232 {
233 DPRINT1(
"USBSTOR_FdoHandleStartDevice no pipe handles %x\n",
Status);
235 }
236
239 {
240 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to get max lun %x\n",
Status);
242 }
243
244
245 do
246 {
248
250 {
251 DPRINT1(
"USBSTOR_FdoHandleStartDevice USBSTOR_CreatePDO failed for Index %lu with Status %x\n",
Index,
Status);
253 }
254
256 DeviceExtension->InstanceCount++;
257
258 } while(Index < DeviceExtension->MaxLUN);
259
260#if 0
261
262
263
266 {
267
268
269
270 DPRINT1(
"USBSTOR_FdoHandleStartDevice failed to get device interface %x\n",
Status);
272 }
273#endif
274
275
276
277 DPRINT(
"USBSTOR_FdoHandleStartDevice FDO is initialized\n");
279}
#define NT_SUCCESS(StatCode)
static const struct @256 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)
#define STATUS_NOT_SUPPORTED
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